
Fleet-scale CVE-2026-31431 ऑडिट और रिमेडिएशन ऑर्केस्ट्रेटर Linux होस्ट्स के लिए SSH के माध्यम से, सख्त host-key सत्यापन और multi-format रिपोर्टिंग के साथ।
यह प्रोजेक्ट एंटरप्राइज़/आंतरिक नेटवर्क में Linux होस्ट पर CVE-2026-31431 का ऑडिट और रिमेडिएशन करने के लिए एक फ्लीट-स्केल ऑर्केस्ट्रेटर है।
algif_aead अक्षम करना)>=3.13uvuv sync
pyproject.toml में Tsinghua मिरर कॉन्फ़िगर किया गया है:
[tool.uv]
index-url = "https://pypi.tuna.tsinghua.edu.cn/simple"
cp fleet.env.example fleet.env
फिर अपने वास्तविक होस्ट और क्रेडेंशियल्स के साथ fleet.env अपडेट करें।
uv run python main.py fleet.env
.
├── main.py
├── pyproject.toml
├── uv.lock
├── fleet.env.example
├── reports/
└── src/
├── main.py
├── models.py
├── config.py
├── executor.py
├── collector.py
├── analyzer.py
├── adapters.py
├── remediator.py
├── orchestrator.py
└── reporter.py
fleet.env कॉन्फ़िगरेशन संदर्भफ़ॉर्मेट KEY=VALUE है। खाली पंक्तियाँ और # टिप्पणियाँ अनदेखी की जाती हैं।
MODE
audit: केवल पहचान, कोई रिमेडिएशन नहीं।fix: पहचान और रिमेडिएशन फ़्लो चलाएँ।auditAUTO_REBOOT
0 या 10MODE=fix होने पर प्रभावी।SSH_TIMEOUT
12MAX_WORKERS
8REPORT_DIR
./reportsPROGRESS_HEARTBEAT_SECONDS
5DEVICE_MAX_DURATION_SECONDS
1800PROGRESS_LOG_TO_FILE
REPORT_DIR में सहेजना है या नहीं।0 या 11FLEET_COUNT
1..FLEET_COUNT पार्स करता है।DEVICE_n_HOST खाली है, तो वह स्लॉट छोड़ दिया जाता है।प्रत्येक होस्ट DEVICE_{n}_ उपसर्ग का उपयोग करता है, जैसे DEVICE_1_*, DEVICE_2_*।
DEVICE_n_NAME
device_n पर फ़ॉलबैक।DEVICE_n_HOST
DEVICE_n_PORT
22DEVICE_n_USER
rootDEVICE_n_PASSWORD
DEVICE_n_KEY के साथ या उसके बजाय उपयोग करें।fleet.env में स्पष्ट रूप से सेट किए गए क्रेडेंशियल्स का उपयोग करती है।DEVICE_n_KEY
./keys/node-1_ed25519DEVICE_n_PASSWORD और DEVICE_n_KEY दोनों खाली हैं, तो कनेक्शन तेज़ी से विफल हो जाता है।DEVICE_n_SUDO_PASSWORD
# =========================
# Global
# =========================
MODE=audit
AUTO_REBOOT=0
SSH_TIMEOUT=12
MAX_WORKERS=8
REPORT_DIR=./reports
PROGRESS_HEARTBEAT_SECONDS=5
DEVICE_MAX_DURATION_SECONDS=1800
PROGRESS_LOG_TO_FILE=1
FLEET_COUNT=3
# =========================
# Device 1
# =========================
DEVICE_1_NAME=pve-node-1
DEVICE_1_HOST=192.168.1.10
DEVICE_1_PORT=22
DEVICE_1_USER=root
DEVICE_1_PASSWORD=
DEVICE_1_KEY=./keys/pve-node-1_ed25519
DEVICE_1_SUDO_PASSWORD=
# =========================
# Device 2
# =========================
DEVICE_2_NAME=web-1
DEVICE_2_HOST=192.168.1.20
DEVICE_2_PORT=22
DEVICE_2_USER=admin
DEVICE_2_PASSWORD=your_ssh_password
DEVICE_2_KEY=
DEVICE_2_SUDO_PASSWORD=your_sudo_password
# =========================
# Device 3
# =========================
DEVICE_3_NAME=
DEVICE_3_HOST=192.168.1.30
DEVICE_3_PORT=22
DEVICE_3_USER=ops
DEVICE_3_PASSWORD=
DEVICE_3_KEY=./keys/db-1_ed25519
DEVICE_3_SUDO_PASSWORD=
MODE=audit
uv run python main.py fleet.env
व्यवहार:
MODE=fix
AUTO_REBOOT=0
uv run python main.py fleet.env
व्यवहार:
/etc/modprobe.d/disable-cve-2026-31431-algif-aead.conf लिखेंalgif_aead अनलोड करने का प्रयास करेंAUTO_REBOOT के आधार पर वैकल्पिक रिबूटSAFE
algif_aead लोड नहीं है।MITIGATED
NEEDS_PATCH
algif_aead उपलब्ध/लोड है और पैच संकेत अनुपलब्ध हैं।UNKNOWN
FAILED
प्रत्येक रन REPORT_DIR में 3 फ़ाइलें उत्पन्न करता है:
cve_2026_31431_<timestamp>.jsoncve_2026_31431_<timestamp>.csvcve_2026_31431_<timestamp>.mdprogress_<timestamp>.log (रीयल-टाइम प्रगति और हार्टबीट लॉग)मुख्य फ़ील्ड:
name, hoststatuskernel, osalgif_loaded, algif_availablepatch_hintfixed, rebootederrorfleet.env या निजी कुंजियाँ कमिट न करें।audit -> fix -> पुनः-ऑडिट।ModuleNotFoundError: No module named 'paramiko'
uv sync चलाएँ।कई होस्ट FAILED हैं
BadHostKeyException
known_hosts रिकॉर्ड से टकराता है।fleet.env क्रेडेंशियल्स का उपयोग करता है।ssh-keygen -R <host>ssh-keyscan -H <host> >> $env:USERPROFILE\.ssh\known_hostsServer ... not found in known_hosts
known_hosts में होस्ट कुंजी जोड़ें, फिर पुनः चलाएँ।कर्नेल अपडेट हुआ लेकिन स्थिति अभी भी जोखिमपूर्ण है