CPANEL-53195: External requests trigger HTTP 500 via 404 safelock failure

During a production investigation we identified an unusual failure mode in cPanel: requests for a static file that did not exist were able to trigger an internal safelock permission failure and return HTTP 500 instead of the expected HTTP 404.
The behavior was confirmed by cPanel Technical Support and linked to CPANEL-53195. The following describes what we observed in production, how the failure presents itself and the temporary mitigation we used while waiting for the permanent upstream fix.
Update 3 (September 2, 2026)
cPanel Technical Support confirmed that no prior reports had been received regarding the HTTP 500 aspect of this issue, which means our documented case expanded the scope of CPANEL-53195. Our technical findings and feedback on the operational impact were forwarded to the cPanel development team for further review. There is currently no estimate for when the permanent fix will be available.
For related cPanel, Linux server and infrastructure work, see our server administration services.
An HTTP 500 error caused by a request for a file that does not exist
HTTP 500 errors normally suggest that something has failed inside an application, web server or backend service. In this case, however, the trigger was much less obvious: external systems were repeatedly requesting a static file that did not exist on the server.
During an investigation on a production cPanel server, we found repeated requests for /unprotected/json-minified.js.map. The requested file was not present, so under normal circumstances the server should simply have returned HTTP 404 Not Found.
Instead, the request entered cPanel's own 404 handling path and eventually resulted in an internal safelock-related permission failure. The final response sent to the requesting client was HTTP 500.
The production server was running cPanel 136.0.38
The behavior was investigated on a production environment running cPanel 136.0 build 38. We upgraded from build 37 specifically to verify whether the issue had changed, but the same webmaild.lock Permission denied condition returned shortly afterwards, followed by HTTP 500.
This was not a synthetic laboratory test: the requests were arriving from distributed external scanners and the resulting failures were visible in normal production monitoring.
That distinction matters because an issue involving an error page can initially appear harmless. A missing JavaScript source map should not normally affect the availability of the hosting control plane. Here, however, an ordinary request for a nonexistent resource was able to enter a failure path that produced a server-side HTTP 500 response.
The safelock failure appeared in cPanel's 404 handling path
The key symptom was a permission error involving cPanel lock files, including webmaild.lock and cpaneld.lock. Instead of completing the 404 response normally, the internal handling path attempted an operation that failed with Permission denied.
The sequence was therefore unusual: an external client requested a nonexistent resource, cPanel attempted to process the missing-resource condition, the safelock operation failed, and the request ended with HTTP 500 rather than HTTP 404.
From the outside this looked like a generic internal server error. Without correlating the requests with the cPanel logs and monitoring events, the relationship between a harmless-looking missing file and the backend failure was easy to miss.
CPANEL-53195 was already being tracked by cPanel
The investigation was linked to CPANEL-53195. We opened the issue with cPanel Technical Support and provided the production behavior we were seeing.
cPanel Support confirmed that the lock-file behavior is a known issue tracked as CPANEL-53195, and our published findings were added to the developer case for review.
This confirmation was important because it ruled out several environment-specific theories. The behavior was not simply the result of an unusual application configuration on one server.
Why monitoring made the problem visible
The failure did not remain hidden in the access log. In our environment it also generated production monitoring alerts related to cPanel web storage, session and backend errors.
This is a good example of why infrastructure monitoring should look beyond basic website availability. A website may still answer normal requests while a specific backend execution path repeatedly produces failures.
Correlating HTTP responses, cPanel logs and monitoring alerts made it possible to isolate the event and distinguish it from unrelated application-level HTTP 500 errors.
The external requests were repeatable
The problematic request was not dependent on authentication or an active cPanel user session. Distributed scanners on the public internet were able to request the missing static resource repeatedly.
The requested URI itself was not special because of its content. The important part was that the resource did not exist and therefore entered the affected cPanel 404 processing path.
That also explains why the symptom can be confusing for administrators. Looking only for a broken application or PHP error may lead the investigation in the wrong direction when the actual failure occurs inside cPanel's handling of a missing resource.
A targeted ModSecurity rule provided a temporary mitigation
Until a permanent upstream fix is available, we implemented a narrowly scoped ModSecurity rule for the URI that was repeatedly triggering the problem.
The rule intercepts the request before it reaches the affected cpsrvd processing path and returns HTTP 404 directly. Because the request no longer enters the failing cPanel 404 handler, the safelock permission error is not triggered.
After applying this mitigation, the unwanted HTTP 500 response disappeared for the targeted request and the client received the response that was expected in the first place: HTTP 404 Not Found.
SecRule REQUEST_URI "@streq /unprotected/json-minified.js.map" "id:1001001,phase:1,deny,status:404,log,msg:'CPANEL-53195 sourcemap probe blocked'"Why the workaround should remain narrowly targeted
A mitigation at the ModSecurity layer should not be treated as a replacement for the vendor fix. Broad rules affecting all 404 responses could have unintended consequences and may hide unrelated problems.
For that reason, the temporary rule should be limited to the request pattern that is known to trigger the issue in the affected environment. The objective is to prevent a specific external request from reaching the broken path, not to redesign cPanel's general error handling.
cPanel moderator cPRex confirmed that a request-level block is still the best plan at this time. There is currently no specific build targeted for the fix, and our published notes were added to the case for the developers to review.
Once the permanent upstream correction is available and verified, the local workaround should be reviewed and removed if it is no longer necessary.
The underlying fix belongs in the lock-file handling code
According to the information received during the support investigation, the underlying behavior is connected to an earlier security-related change and the permanent resolution requires changes in the lock-file generation path.
That is another reason not to treat the ModSecurity rule as the final solution. It changes how one request reaches the affected code, but it does not correct the internal safelock behavior itself.
Administrators following CPANEL-53195 should therefore continue to monitor cPanel updates and remove local mitigations only after confirming that the permanent fix is present in their installed version.
How to recognize the same problem on another server
If you are investigating unexplained HTTP 500 responses on a cPanel server, it is worth checking whether the requests are actually targeting nonexistent resources rather than application endpoints.
Look for repeated 404-style requests immediately preceding the HTTP 500 response, especially when the cPanel logs also contain Permission denied messages involving cpaneld.lock, webmaild.lock or related safelock operations.
It is also useful to compare timestamps with monitoring alerts. If cPanel backend or session checks become critical at the same moment as the external request, that correlation can substantially narrow the investigation.
Do not assume every HTTP 500 comes from the hosted website
One of the practical lessons from this incident is that the HTTP status code alone does not identify the failing layer.
A 500 response seen on a hosting server may originate in PHP, a CMS, a reverse proxy, a web server module, a security layer or, as in this case, an internal control-panel request path.
Effective troubleshooting therefore requires following the complete request chain rather than stopping at the first visible symptom.
CPANEL-53195 in production
For us, the important finding was that CPANEL-53195 was not merely an internal lock-file warning. Under the observed conditions, an unauthenticated external request for a nonexistent resource could cause cPanel's request path to return HTTP 500.
cPanel has confirmed that a request-level block remains the best plan at this time. There is currently no specific build targeted for the permanent fix, and our published findings have been added to the developer case for review. Until the upstream correction is available, the targeted ModSecurity interception prevents the known request from entering the affected handler and returns HTTP 404 instead.
We are publishing the production findings because the combination of external scanner traffic, safelock permission errors and apparently unrelated HTTP 500 responses can otherwise consume a significant amount of troubleshooting time.
A Hungarian-language version of this investigation is available here.