This is a summary of the AI-generated 10-question deep analysis. The full version (longer answers, follow-up Q&A, related CVEs) requires login. Read the full analysis β
Q1What is this vulnerability? (Essence + Consequences)
π¨ **Essence**: Apache Airflow's variable import endpoint lacks authentication! π« π₯ **Consequences**: Attackers can add/modify DAG variables.β¦
π‘οΈ **Root Cause**: Missing Authentication on a Critical Component. π π **CWE**: CWE-269 (Improper Privilege Management). The 'import' endpoint is wide open without proper access checks. π
Q3Who is affected? (Versions/Components)
π₯ **Affected**: Apache Airflow users. π¦ π **Versions**: 2.0.0 up to 2.1.2 (inclusive). π« β **Safe**: Version 2.1.3 and above are patched. π’
Q4What can hackers do? (Privileges/Data)
π΅οΈ **Attacker Actions**: Unauthenticated access! πΆββοΈ π **Impact**: Inject malicious variables into DAGs. 𧬠π£ **Result**: Potential RCE, DoS, or data theft. π
Q5Is exploitation threshold high? (Auth/Config)
π **Threshold**: LOW! π π **Auth**: None required. No login needed to hit the endpoint. π βοΈ **Config**: Just needs the endpoint exposed. Easy to exploit. π―
Q6Is there a public Exp? (PoC/Wild Exploitation)
π£ **Exploits**: YES! Public PoCs exist. π π **Links**: GitHub PoCs (e.g., Captain-v-hook) and Nuclei templates are available. π π₯ **Status**: Actively exploitable in the wild. π¨
Q7How to self-check? (Features/Scanning)
π **Self-Check**: Scan for Airflow versions 2.0.0-2.1.2. π π οΈ **Tools**: Use Nuclei templates for CVE-2021-38540. π§ͺ π **Visual**: Check if the variable import endpoint is accessible without auth. π
Q8Is it fixed officially? (Patch/Mitigation)
π‘οΈ **Fix**: YES! Official patch released. π¦ π **Action**: Upgrade to Apache Airflow **2.1.3** or later. π π’ **Source**: Apache Security Announcements confirm the fix. π
Q9What if no patch? (Workaround)
π§ **No Patch?**: Isolate the endpoint! π§± π **Mitigation**: Enforce strict authentication/WAF rules on the import API. π‘οΈ π« **Block**: Prevent unauthenticated requests to `/admin/variable/import`. π«