
أداة تنسيق تدقيق ومعالجة ثغرة CVE-2026-31431 على نطاق الأساطيل لأنظمة Linux عبر SSH، مع تحقق صارم من مفاتيح المضيف وإعداد تقارير متعددة الصيغ.
هذا المشروع عبارة عن منسّق على نطاق الأساطيل لتدقيق ومعالجة CVE-2026-31431 على مضيفات Linux في الشبكات المؤسسية/الداخلية.
algif_aead)>=3.13uvuv sync
تم تكوين مرآة Tsinghua في pyproject.toml:
[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
# =========================
# عام
# =========================
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
# =========================
# الجهاز 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=
# =========================
# الجهاز 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
# =========================
# الجهاز 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.confalgif_aeadAUTO_REBOOTSAFE
algif_aead غير محمّل.MITIGATED
NEEDS_PATCH
algif_aead متاح/محمّل وتلميحات التصحيح مفقودة.UNKNOWN
FAILED
ينشئ كل تشغيل 3 ملفات في REPORT_DIR:
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، ثم أعد التشغيل.تم تحديث النواة لكن الحالة لا تزال محفوفة بالمخاطر