HexBrain

Browse / CVEs / CVE-2024-10812

CVE-2024-10812

GPT Academic v1.3.9 - Open Redirect

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

An open redirect vulnerability exists in GPT Academic v1.3.9, where the file parameter in the /file= endpoint can be manipulated to redirect users to malicious websites. This could facilitate phishing attacks by tricking users into visiting attacker-controlled URLs.

Impact

Unauthenticated attackers can redirect users to malicious URLs via the file parameter, facilitating phishing attacks and credential theft.

Fix

Update GPT Academic to a version newer than v1.3.9.

How to confirm it

Send: GET {{BaseURL}}
Positive when: contains_any(tolower(body), "gpt_academic", "gptacademic")
Send: GET {{BaseURL}}/file=https://oast.pro
Positive when: matches in header /(?m)^(?:Location\s*?:\s*?)(?:https?://|//)?(?:[a-zA-Z0-9\-_\.@]*)oast\.pro.*$/

Run it with nuclei: nuclei -id CVE-2024-10812 -u <target>

The full check
id: CVE-2024-10812

info:
  name: GPT Academic v1.3.9 - Open Redirect
  author: DhiyaneshDK
  severity: medium
  description: |
    An open redirect vulnerability exists in GPT Academic v1.3.9, where the file parameter in the /file= endpoint can be manipulated to redirect users to malicious websites. This could facilitate phishing attacks by tricking users into visiting attacker-controlled URLs.
  impact: |
    Unauthenticated attackers can redirect users to malicious URLs via the file parameter, facilitating phishing attacks and credential theft.
  remediation: |
    Update GPT Academic to a version newer than v1.3.9.
  reference:
    - https://huntr.com/bounties/51408ebd-e0be-489d-8088-f210087dbd6a
  classification:
    epss-score: 0.00585
    epss-percentile: 0.48287
  metadata:
    verified: true
    max-request: 1
    fofa-query: body="gpt_academic"
  tags: cve,cve2024,huntr,redirect,oss,gpt_academic,binary-husky,vuln

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

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

    matchers:
      - type: dsl
        dsl:
          - 'contains_any(tolower(body), "gpt_academic", "gptacademic")'
        internal: true

  - method: GET
    path:
      - "{{BaseURL}}/file=https://oast.pro"

    matchers:
      - type: regex
        part: header
        regex:
          - '(?m)^(?:Location\s*?:\s*?)(?:https?://|//)?(?:[a-zA-Z0-9\-_\.@]*)oast\.pro.*$'

References

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