{"schemaVersion":3,"id":"CVE-2022-38649","aliases":["GHSA-7wqf-h36w-47mc","BIT-airflow-2022-38649","PYSEC-2026-267"],"status":"published","duplicateOf":null,"title":null,"description":"Improper Neutralization of Special Elements used in an OS Command ('OS Command Injection') vulnerability in Apache Airflow Pinot Provider, Apache Airflow allows an attacker to control commands executed in the task execution context, without write access to DAG files. This issue affects Apache Airflow Pinot Provider versions prior to 4.0.0. It also impacts any Apache Airflow versions prior to 2.3.0 in case Apache Airflow Pinot Provider is installed (Apache Airflow Pinot Provider 4.0.0 can only be installed for Airflow 2.3.0+). Note that you need to manually install the Pinot Provider version 4.0.0 in order to get rid of the vulnerability on top of Airflow 2.3.0+ version.","dates":{"published":"2022-11-22T00:00:00.000Z","modified":"2025-04-29T04:35:58.414Z","reserved":null,"kevAdded":[],"kevDue":[]},"cvss":{"headline":{"score":9.8,"severity":"critical","version":"3.1","versionLabel":"v3.1","source":"CVE.org","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","computed":false,"selection":"backend-summary"},"metrics":[{"version":"3.1","versionLabel":"v3.1","source":"CVE.org","score":9.8,"severity":"critical","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","exploitability":null,"impact":null,"computed":false},{"version":"3.1","versionLabel":"v3.1","source":"OSV · Pypi","score":9.8,"severity":"critical","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","exploitability":10,"impact":9.8,"computed":true},{"version":"3.1","versionLabel":"v3.1","source":"NVD","score":9.8,"severity":"critical","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","exploitability":null,"impact":null,"computed":false}]},"epss":{"probability":0.03338,"percentile":0.88496,"severity":"low","asOf":"2026-10-19T00:00:00.000Z","change":{"pp":-0.021999999999999797,"baselineDate":"2026-09-19T00:00:00.000Z","baselineScore":0.0336},"history":[{"date":"2026-09-14T00:00:00.000Z","score":0.0336,"percentile":null},{"date":"2026-09-15T00:00:00.000Z","score":0.0336,"percentile":null},{"date":"2026-09-16T00:00:00.000Z","score":0.0336,"percentile":null},{"date":"2026-09-17T00:00:00.000Z","score":0.0336,"percentile":null},{"date":"2026-09-18T00:00:00.000Z","score":0.0336,"percentile":null},{"date":"2026-09-19T00:00:00.000Z","score":0.0336,"percentile":null},{"date":"2026-09-20T00:00:00.000Z","score":0.0336,"percentile":null},{"date":"2026-09-21T00:00:00.000Z","score":0.0336,"percentile":null},{"date":"2026-09-22T00:00:00.000Z","score":0.03338,"percentile":null},{"date":"2026-09-23T00:00:00.000Z","score":0.03338,"percentile":null},{"date":"2026-09-24T00:00:00.000Z","score":0.03338,"percentile":null},{"date":"2026-09-25T00:00:00.000Z","score":0.03338,"percentile":null},{"date":"2026-09-26T00:00:00.000Z","score":0.03338,"percentile":null},{"date":"2026-09-27T00:00:00.000Z","score":0.03338,"percentile":null},{"date":"2026-09-28T00:00:00.000Z","score":0.03338,"percentile":null},{"date":"2026-09-29T00:00:00.000Z","score":0.03338,"percentile":null},{"date":"2026-09-30T00:00:00.000Z","score":0.03338,"percentile":null},{"date":"2026-10-01T00:00:00.000Z","score":0.03338,"percentile":null},{"date":"2026-10-02T00:00:00.000Z","score":0.03338,"percentile":null},{"date":"2026-10-03T00:00:00.000Z","score":0.03338,"percentile":null},{"date":"2026-10-04T00:00:00.000Z","score":0.03338,"percentile":null},{"date":"2026-10-05T00:00:00.000Z","score":0.03338,"percentile":null},{"date":"2026-10-06T00:00:00.000Z","score":0.03338,"percentile":null},{"date":"2026-10-07T00:00:00.000Z","score":0.03338,"percentile":null},{"date":"2026-10-08T00:00:00.000Z","score":0.03338,"percentile":null},{"date":"2026-10-09T00:00:00.000Z","score":0.03338,"percentile":null},{"date":"2026-10-10T00:00:00.000Z","score":0.03338,"percentile":null},{"date":"2026-10-11T00:00:00.000Z","score":0.03338,"percentile":null},{"date":"2026-10-12T00:00:00.000Z","score":0.03338,"percentile":null},{"date":"2026-10-13T00:00:00.000Z","score":0.03338,"percentile":null},{"date":"2026-10-14T00:00:00.000Z","score":0.03338,"percentile":null},{"date":"2026-10-15T00:00:00.000Z","score":0.03338,"percentile":null},{"date":"2026-10-16T00:00:00.000Z","score":0.03338,"percentile":null},{"date":"2026-10-17T00:00:00.000Z","score":0.03338,"percentile":null},{"date":"2026-10-18T00:00:00.000Z","score":0.03338,"percentile":null},{"date":"2026-10-19T00:00:00.000Z","score":0.03338,"percentile":0.88496}],"last30":[{"date":"2026-09-19T00:00:00.000Z","score":0.0336,"percentile":null},{"date":"2026-09-20T00:00:00.000Z","score":0.0336,"percentile":null},{"date":"2026-09-21T00:00:00.000Z","score":0.0336,"percentile":null},{"date":"2026-09-22T00:00:00.000Z","score":0.03338,"percentile":null},{"date":"2026-09-23T00:00:00.000Z","score":0.03338,"percentile":null},{"date":"2026-09-24T00:00:00.000Z","score":0.03338,"percentile":null},{"date":"2026-09-25T00:00:00.000Z","score":0.03338,"percentile":null},{"date":"2026-09-26T00:00:00.000Z","score":0.03338,"percentile":null},{"date":"2026-09-27T00:00:00.000Z","score":0.03338,"percentile":null},{"date":"2026-09-28T00:00:00.000Z","score":0.03338,"percentile":null},{"date":"2026-09-29T00:00:00.000Z","score":0.03338,"percentile":null},{"date":"2026-09-30T00:00:00.000Z","score":0.03338,"percentile":null},{"date":"2026-10-01T00:00:00.000Z","score":0.03338,"percentile":null},{"date":"2026-10-02T00:00:00.000Z","score":0.03338,"percentile":null},{"date":"2026-10-03T00:00:00.000Z","score":0.03338,"percentile":null},{"date":"2026-10-04T00:00:00.000Z","score":0.03338,"percentile":null},{"date":"2026-10-05T00:00:00.000Z","score":0.03338,"percentile":null},{"date":"2026-10-06T00:00:00.000Z","score":0.03338,"percentile":null},{"date":"2026-10-07T00:00:00.000Z","score":0.03338,"percentile":null},{"date":"2026-10-08T00:00:00.000Z","score":0.03338,"percentile":null},{"date":"2026-10-09T00:00:00.000Z","score":0.03338,"percentile":null},{"date":"2026-10-10T00:00:00.000Z","score":0.03338,"percentile":null},{"date":"2026-10-11T00:00:00.000Z","score":0.03338,"percentile":null},{"date":"2026-10-12T00:00:00.000Z","score":0.03338,"percentile":null},{"date":"2026-10-13T00:00:00.000Z","score":0.03338,"percentile":null},{"date":"2026-10-14T00:00:00.000Z","score":0.03338,"percentile":null},{"date":"2026-10-15T00:00:00.000Z","score":0.03338,"percentile":null},{"date":"2026-10-16T00:00:00.000Z","score":0.03338,"percentile":null},{"date":"2026-10-17T00:00:00.000Z","score":0.03338,"percentile":null},{"date":"2026-10-18T00:00:00.000Z","score":0.03338,"percentile":null},{"date":"2026-10-19T00:00:00.000Z","score":0.03338,"percentile":0.88496}]},"kev":{"state":"not-listed","entries":[],"listedCount":0,"totalCatalogs":3,"catalogs":[{"source":"cisa","label":"CISA","listed":false,"entry":null},{"source":"enisa","label":"ENISA","listed":false,"entry":null},{"source":"circl","label":"CIRCL","listed":false,"entry":null}]},"ransomware":{"state":"none-recorded","sources":[]},"exploits":[],"exploitCount":0,"weaknesses":[{"id":"CWE-78","name":"Improper Neutralization of Special Elements used in an OS Command ('OS Command Injection')","description":"The product constructs all or part of an OS command using externally-influenced input from an upstream component, but it does not neutralize or incorrectly neutralizes special elements that could modify the intended OS command when it is sent to a downstream component.","type":"weakness","status":"Stable","abstraction":"Base","likelihoodOfExploit":"High","url":"https://cwe.mitre.org/data/definitions/78.html"}],"affected":[{"vendor":"apache software foundation","product":"apache airflow","name":"Apache Airflow","label":"apache airflow","ecosystem":null,"cpePart":"a","purl":null,"purlType":null,"versions":[{"text":"≥ unspecified, < 2.3.0","noFixRecorded":false,"fixedIn":null}],"versionsText":"≥ unspecified, < 2.3.0","eol":null,"hubHref":"/vendor/apache_software_foundation/apache_airflow"},{"vendor":"apache software foundation","product":"apache airflow pinot provider","name":"Apache Airflow Pinot Provider","label":"apache airflow pinot provider","ecosystem":null,"cpePart":"a","purl":null,"purlType":null,"versions":[{"text":"≥ unspecified, < 4.0.0","noFixRecorded":false,"fixedIn":null}],"versionsText":"≥ unspecified, < 4.0.0","eol":null,"hubHref":"/vendor/apache_software_foundation/apache_airflow_pinot_provider"},{"vendor":"apache","product":"airflow","name":"Airflow","label":"airflow","ecosystem":null,"cpePart":"a","purl":null,"purlType":null,"versions":[{"text":"< 2.3.0","noFixRecorded":false,"fixedIn":null}],"versionsText":"< 2.3.0","eol":{"isEol":null,"eolDate":null,"matchMethod":"cpe","cycle":null,"product":{"name":"apache-airflow","label":"Apache Airflow","category":"framework"}},"hubHref":"/vendor/apache/airflow"},{"vendor":"apache","product":"apache-airflow-providers-apache-pinot","name":"apache-airflow-providers-apache-pinot","label":"apache-airflow-providers-apache-pinot","ecosystem":null,"cpePart":"a","purl":null,"purlType":null,"versions":[{"text":"< 4.0.0","noFixRecorded":false,"fixedIn":null}],"versionsText":"< 4.0.0","eol":null,"hubHref":"/vendor/apache/apache-airflow-providers-apache-pinot"},{"vendor":"PyPI","product":"apache-airflow","name":"apache-airflow","label":"apache-airflow","ecosystem":"PyPI","cpePart":null,"purl":"pkg:pypi/apache-airflow","purlType":"pypi","versions":[{"text":"< 2.3.0","noFixRecorded":false,"fixedIn":null}],"versionsText":"< 2.3.0","eol":null,"hubHref":null}],"affectedCount":5,"eol":{"hasEol":false,"count":0},"references":[{"url":"https://github.com/apache/airflow/pull/27641","label":"github.com/apache/airflow/pull/27641","hostname":"github.com","tags":["WEB","Patch","Third Party Advisory"]},{"url":"https://lists.apache.org/thread/033o1gbc4ly6dpd2xf1o201v56fbl4dz","label":"lists.apache.org/thread/033o1gbc4ly6dpd2xf1o201v56fbl4dz","hostname":"lists.apache.org","tags":["WEB","Issue Tracking","Mailing List","Vendor Advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2022-38649","label":"nvd.nist.gov/vuln/detail/CVE-2022-38649","hostname":"nvd.nist.gov","tags":["Advisory"]},{"url":"https://github.com/apache/airflow/commit/1d4fd5c6eacab0b88f8660f9d780174434393f1a","label":"github.com/apache/airflow/commit/1d4fd5c6eacab0b88f8660f9d780174434393f1a","hostname":"github.com","tags":["WEB"]},{"url":"https://github.com/apache/airflow","label":"github.com/apache/airflow","hostname":"github.com","tags":["PACKAGE"]},{"url":"https://pypi.org/project/apache-airflow","label":"pypi.org/project/apache-airflow","hostname":"pypi.org","tags":["PACKAGE"]},{"url":"https://github.com/advisories/GHSA-7wqf-h36w-47mc","label":"github.com/advisories/GHSA-7wqf-h36w-47mc","hostname":"github.com","tags":["Advisory"]}],"lineage":{"upstream":[],"downstream":[],"duplicates":[],"related":[]},"timeline":[{"kind":"published","date":"2022-11-22T00:00:00.000Z","label":"Published","detail":"Vulnerability first disclosed.","source":null},{"kind":"modified","date":"2025-04-29T04:35:58.414Z","label":"Last modified","detail":"Vulnerability information updated.","source":null}],"risk":{"score":70,"level":"high","profile":"Default","thresholds":{"critical":75,"high":50,"medium":25,"low":10}},"meta":{"dataAsOf":"2026-10-20T04:45:39.197Z","stale":false,"partial":false}}