Summary
Coolify contains a missing authorization flaw in route-level middleware that may allow a remote attacker to perform actions without the required permission checks. The issue becomes risky when protected resource-update routes rely on incomplete or absent authorization enforcement.
Affected context
The vulnerability occurs in Coolify deployments using the affected route-level middleware associated with app/Http/Middleware/CanUpdateResource.php. It may affect remotely reachable application routes when authorization checks are missing or insufficiently applied before resource operations are performed.
Exploit preconditions
- Attack surface: Remotely reachable Coolify application routes
- Required access: Network access to an affected endpoint; the exact authentication requirement depends on route configuration
- Trigger point: Processing a request through the affected route-level middleware
- Why exploitation is possible: The application may fail to verify whether the requester is authorized to update or otherwise operate on the targeted resource
Why this happens
The underlying bug is an incomplete authorization decision at a route or resource boundary. A request can reach a protected operation without a sufficiently enforced permission check, which maps to CWE-862: Missing Authorization. Depending on how identity and permissions are evaluated, the behavior may also relate to CWE-863: Incorrect Authorization, where an authorization check exists but does not correctly restrict the requested action or resource.
Potential impact
- An attacker may perform unauthorized resource changes
- An attacker could access or manipulate functionality intended for authorized users
- Application configuration or managed workloads may be altered
- The issue can contribute to broader compromise if affected operations expose privileged capabilities
General mitigation guidance
Mitigation generally focuses on enforcing authorization at every sensitive operation rather than relying only on route reachability or client-side controls.
Common defensive patterns include:
- Apply deny-by-default authorization to resource-management routes
- Enforce server-side permission checks immediately before sensitive actions
- Validate both the requested operation and the specific resource scope
- Centralize authorization policies to reduce inconsistent middleware behavior
- Use least-privilege roles and minimize permissions granted to service accounts
- Treat client-supplied identifiers and role information as untrusted
- Add authorization tests for permitted, denied, and cross-resource access scenarios
How teams detect issues like this
Organizations can look for missing authorization through:
- Static analysis rules that identify sensitive handlers without authorization guards
- Code review checks for route middleware that authenticates users but does not verify permissions
- Tests that attempt actions across users, roles, tenants, and resource identifiers
- Runtime policy monitoring for denied and successful access to administrative operations
- CI enforcement requiring authorization coverage for newly exposed routes
Automated security review tools may help identify inconsistent authorization checks, but findings should be validated against the application's intended access model.

