CVE-2023-28668 Overview
CVE-2023-28668 is a critical authorization bypass vulnerability affecting the Jenkins Role-based Authorization Strategy Plugin version 587.v2872c41fa_e51 and earlier. The vulnerability allows the plugin to continue granting permissions to users even after those permissions have been explicitly disabled by administrators. This improper preservation of permissions (CWE-281) undermines the fundamental security model of Jenkins access control.
Critical Impact
Users may retain elevated privileges after administrators disable their permissions, potentially allowing unauthorized access to sensitive CI/CD pipelines, build configurations, and secrets stored in Jenkins.
Affected Products
- Jenkins Role-based Authorization Strategy Plugin version 587.v2872c41fa_e51 and earlier
- Jenkins instances utilizing role-based authorization for access control
- CI/CD environments relying on dynamic permission management
Discovery Timeline
- 2023-03-21 - Jenkins project publishes security advisory (SECURITY-3053)
- 2023-04-02 - CVE-2023-28668 published to NVD
- 2025-02-25 - Last updated in NVD database
Technical Details for CVE-2023-28668
Vulnerability Analysis
This vulnerability represents a fundamental flaw in how the Role-based Authorization Strategy Plugin handles permission state changes. When an administrator disables a permission for a user or role, the plugin fails to properly revoke that permission, allowing the affected user to continue operating with elevated privileges. The vulnerability is exploitable over the network without requiring prior authentication or user interaction, making it particularly dangerous in environments where Jenkins is exposed to untrusted networks.
The improper preservation of permissions (CWE-281) means that security-conscious administrators who actively manage access controls may have a false sense of security, believing they have revoked access when in fact permissions persist.
Root Cause
The root cause lies in the plugin's failure to properly synchronize permission state changes with the active authorization cache or session data. When permissions are disabled through the administrative interface, the changes are not effectively propagated to enforce the new restricted access policy. This results in a disconnect between the configured permissions and the actual enforced permissions.
Attack Vector
The vulnerability can be exploited through network access to the Jenkins instance. An attacker who previously had legitimate permissions (or obtained them through other means) could continue to exercise those permissions even after an administrator attempts to revoke them. This is particularly concerning in scenarios such as:
- Terminated employees whose access should be revoked
- Contractors whose project access should be limited
- Users temporarily granted elevated permissions for specific tasks
- Security incident response where rapid permission revocation is critical
The attack does not require any special privileges or user interaction to exploit, as the persistence of permissions occurs automatically within the plugin's authorization logic.
Detection Methods for CVE-2023-28668
Indicators of Compromise
- Users accessing Jenkins resources or performing actions that should be restricted based on current role configurations
- Audit logs showing successful authorization for users who have been removed from roles or had permissions revoked
- Discrepancies between configured role assignments and actual observed user capabilities
- Unexpected build executions or configuration changes by users with supposedly limited access
Detection Strategies
- Compare active user permissions against configured role-based access control settings to identify mismatches
- Review Jenkins audit logs for authorization decisions that contradict current permission configurations
- Implement automated permission verification scripts that test actual access against expected access
- Monitor for users performing privileged actions after role membership changes
Monitoring Recommendations
- Enable comprehensive Jenkins audit logging to track all authorization decisions and access attempts
- Implement regular automated audits comparing configured permissions against observed user activity
- Set up alerts for sensitive operations performed by users who have had recent permission changes
- Consider implementing a permission reconciliation process after any role or access control modifications
How to Mitigate CVE-2023-28668
Immediate Actions Required
- Update the Jenkins Role-based Authorization Strategy Plugin to version 588.v4f9f42c0b_6d7 or later immediately
- Audit all current role assignments and user permissions to ensure they reflect intended access levels
- Force re-authentication for all users after applying the patch to ensure permission changes take effect
- Review audit logs for any suspicious activity that may indicate exploitation of this vulnerability
Patch Information
Jenkins has released an updated version of the Role-based Authorization Strategy Plugin that addresses this vulnerability. Administrators should update to version 588.v4f9f42c0b_6d7 or later. The patch ensures that permission changes are properly enforced immediately when administrators modify role assignments or disable specific permissions.
For detailed information about the fix, refer to the Jenkins Security Advisory 2023-03-21.
Workarounds
- If immediate patching is not possible, consider restarting the Jenkins instance after making permission changes to force a fresh authorization state
- Implement additional network-level access controls to limit exposure while the vulnerable plugin version is in use
- Use Jenkins' built-in matrix-based security as an alternative authorization strategy until the plugin can be updated
- Monitor and audit user activities closely for any actions that should be restricted based on current configurations
# Configuration example: Update Jenkins plugin via CLI
java -jar jenkins-cli.jar -s http://localhost:8080/ install-plugin role-strategy -restart
# Verify installed plugin version
java -jar jenkins-cli.jar -s http://localhost:8080/ list-plugins | grep role-strategy
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.


