Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
Dead.Letter-CVE-2026-45185 — शेल-आधारित भेद्यता स्कैनर जो Exim MTA में CVE-2026-45185 (Dead.Letter) के लिए है। GnuTLS बिल्ड में उपयोग-के-बाद-मुक्त (use-after-free) का पता लगाता है, संस्करण, TLS लाइब्रेरी और CHUNKING कॉन्फ़िगरेशन की जाँच करता है। CI/CD एकीकरण के लिए JSON आउटपुट उत्पन्न करता है। | Kitploit
उपकरण/GitHubGitHub/liamromanis101/dead.letter-cve-2026-45185
भेद्यता स्कैनरभेद्यता विश्लेषणशोषणस्क्रिप्टिंग और स्वचालनकॉन्फ़िगरेशन ऑडिटिंगनेटवर्क सुरक्षाDevSecOpsईमेल सुरक्षा
GitHub
liamromanis101/dead.letter-cve-2026-45185

Dead.Letter-CVE-2026-45185

शेल-आधारित भेद्यता स्कैनर जो Exim MTA में CVE-2026-45185 (Dead.Letter) के लिए है। GnuTLS बिल्ड में उपयोग-के-बाद-मुक्त (use-after-free) का पता लगाता है, संस्करण, TLS लाइब्रेरी और CHUNKING कॉन्फ़िगरेशन की जाँच करता है। CI/CD एकीकरण के लिए JSON आउटपुट उत्पन्न करता है।

रिपॉजिटरी देखें
2274 महीने पहलेअभी तक समीक्षित नहीं

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें

CVE-2026-45185 — "Dead.Letter" एक्ज़िम कमजोरी स्कैनर

एक शेल स्क्रिप्ट जो यह पता लगाने के लिए है कि कोई Linux सिस्टम CVE-2026-45185 के प्रति संवेदनशील है या नहीं, जो Exim मेल ट्रांसफर एजेंट में एक use-after-free बग है जो रिमोट कोड निष्पादन का कारण बन सकता है।

CI/CD पाइपलाइनों, कॉन्फ़िगरेशन प्रबंधन टूलिंग और एड-हॉक सिस्टम ऑडिट में उपयोग के लिए डिज़ाइन किया गया। यह मानव-पठनीय और मशीन-पठनीय (JSON) दोनों आउटपुट उत्पन्न करता है।


कमजोरी

CVE-2026-45185 (उपनाम: Dead.Letter) Exim के BDAT (बाइनरी डेटा) संदेश बॉडी पार्सिंग में एक use-after-free बग है, जो तब ट्रिगर होता है जब TLS को GnuTLS द्वारा संभाला जाता है।

TLS शटडाउन के दौरान, Exim अपने TLS ट्रांसफर बफर को मुक्त करता है — लेकिन एक नेस्टेड BDAT रिसीव रैपर अभी भी आने वाले बाइट्स को संसाधित कर सकता है और ungetc() को कॉल कर सकता है, जिससे एक एकल \n बाइट मुक्त किए गए क्षेत्र में लिखा जाता है। वह एक-बाइट लेखन हीप आवंटक मेटाडेटा को दूषित करता है, जिससे एक हमलावर आगे मेमोरी प्रिमिटिव प्राप्त कर सकता है और रिमोट कोड निष्पादन प्राप्त कर सकता है।

गुणविवरण
CVECVE-2026-45185
उपनामDead.Letter
प्रकारUse-After-Free (CWE-416)
घटकExim BDAT/CHUNKING हैंडलर (केवल GnuTLS बिल्ड)
हमला वेक्टरनेटवर्क — बिना प्रमाणीकरण के, केवल TLS कनेक्शन और CHUNKING एक्सटेंशन की आवश्यकता है
प्रभावित संस्करणExim 4.97 – 4.99.2, केवल GnuTLS बिल्ड
फिक्स्ड इनExim 4.99.3
खोजकर्ताFederico Kirschbaum, XBOW Security Lab (1 मई 2026 को रिपोर्ट किया गया)

OpenSSL बिल्ड प्रभावित नहीं हैं। यह कमजोरी केवल Exim पर लागू होती है जो USE_GNUTLS=yes के साथ संकलित है। यदि आपका Exim OpenSSL से लिंक है, तो आप संस्करण की परवाह किए बिना संवेदनशील नहीं हैं।


स्क्रिप्ट क्या जाँचती है

स्क्रिप्ट एक निर्णय वृक्ष के माध्यम से काम करती है, जैसे ही कोई निश्चित सुरक्षित स्थिति की पुष्टि होती है, रुक जाती है और सिस्टम को संवेदनशील नहीं चिह्नित करती है:

जाँच 1 — Exim की उपस्थिति $PATH और सामान्य स्थापना स्थानों (/usr/sbin/exim, /usr/sbin/exim4, /usr/local/sbin/exim) की खोज करता है। यदि Exim नहीं मिलता है, तो सिस्टम संवेदनशील नहीं है और स्क्रिप्ट तुरंत बाहर निकल जाती है।

जाँच 2 — Exim संस्करण exim -bV आउटपुट को पार्स करता है और प्रभावित सीमा (4.97 – 4.99.2) से तुलना करता है। संस्करण ≥ 4.99.3 को पैच किया गया माना जाता है। ज्ञात सीमा से बाहर के संस्करणों को संवेदनशील नहीं चिह्नित किया जाता है (यदि वे अपरिचित हैं तो एक नोट के साथ)।

जाँच 3 — TLS लाइब्रेरी (महत्वपूर्ण द्वार) तीन पहचान विधियों का क्रमिक रूप से उपयोग करता है:

  1. exim -bV बिल्ड जानकारी (सबसे विश्वसनीय — Exim अपनी संकलन-समय सुविधाओं की रिपोर्ट करता है, जैसे Support for: GnuTLS)
  2. ldd साझा लाइब्रेरी लिंकेज
  3. strings बाइनरी स्कैन (फ़ॉलबैक)

यदि OpenSSL का पता चलता है → निर्णय संवेदनशील नहीं में बदल जाता है, भले ही संस्करण कुछ भी हो। यदि GnuTLS का पता चलता है → आक्रमण सतह मौजूद पुष्टि हो जाती है। यदि कोई निर्धारित नहीं किया जा सकता है → परिणाम अनिर्णायक है।

जाँच 4 — CHUNKING/BDAT कॉन्फ़िग (वर्कअराउंड जाँच) केवल तभी चलता है जब सिस्टम अभी भी इस बिंदु पर संवेदनशील चिह्नित है। यह जाँचता है कि chunking_advertise_hosts को Exim कॉन्फ़िग में स्पष्ट रूप से खाली मान पर सेट किया गया है या नहीं, जो BDAT विज्ञापन को अक्षम करता है और आक्रमण वेक्टर को अवरुद्ध करता है। यह एकल-फ़ाइल कॉन्फ़िग और डेबियन के स्प्लिट-कॉन्फ़िग लेआउट (/etc/exim4/conf.d/ टुकड़े) दोनों को संभालता है।

नोट: यदि chunking_advertise_hosts कॉन्फ़िग से अनुपस्थित है (डिफ़ॉल्ट), तो Exim सभी होस्ट (*) को CHUNKING का विज्ञापन करता है। इसे अक्षम करने के लिए विकल्प को स्पष्ट रूप से खाली मान पर सेट किया जाना चाहिए।

जाँच 5 — सूचनात्मक सिस्टम शमन निर्णय नहीं बदलता, लेकिन उन कारकों की रिपोर्ट करता है जो शोषण क्षमता को प्रभावित करते हैं:

  • ASLR स्तर (/proc/sys/kernel/randomize_va_space) — 2 होना चाहिए
  • glibc संस्करण — 2.32+ में मजबूत हीप मेटाडेटा अखंडता जाँच है
  • Exim बाइनरी के लिए checksec आउटपुट (PIE, RELRO, स्टैक कैनेरी) यदि checksec स्थापित है
  • systemd यूनिट सैंडबॉक्सिंग: MemoryDenyWriteExecute, NoNewPrivileges, SystemCallFilter

आवश्यकताएँ

  • Bash 4.0 या बाद का संस्करण
  • Linux जिसमें /proc फाइलसिस्टम हो (ASLR जाँच के लिए)
  • मानक कोरयूटिल्स: grep, awk, ldd, head
  • checksec (वैकल्पिक — बाइनरी हार्डनिंग विश्लेषण के लिए)
  • systemctl (वैकल्पिक — systemd यूनिट निरीक्षण के लिए)
  • Exim कॉन्फ़िग फ़ाइल पढ़ने के लिए पर्याप्त विशेषाधिकार के साथ चलाया जाना चाहिए (आमतौर पर रूट, या डेबियन/उबंटू पर Debian-exim समूह में एक उपयोगकर्ता)

मुख्य कमजोरी जाँचों के लिए कोई बाहरी निर्भरता आवश्यक नहीं है।


उपयोग

root@kitploit:~
chmod +x check_cve_2026_45185.sh
./check_cve_2026_45185.sh

विकल्प

फ़्लैगविवरण
--jsonपरिणामों को JSON ऑब्जेक्ट के रूप में आउटपुट करें (नीचे देखें)
--quietसभी आउटपुट को दबाएँ; केवल एग्जिट कोड सेट किया जाता है
--no-colorANSI रंग कोड अक्षम करें (लॉग फ़ाइलों के लिए उपयोगी)
--help / -hउपयोग जानकारी प्रिंट करें

एग्जिट कोड

कोडअर्थ
0संवेदनशील नहीं (या एक निश्चित सुरक्षित स्थिति मिली)
1संवेदनशील
2अनिर्णायक — एक या अधिक आवश्यक तथ्य निर्धारित नहीं कर सका; संभावित रूप से संवेदनशील मानें
3स्क्रिप्ट त्रुटि या असमर्थित वातावरण

उदाहरण आउटपुट

मानव-पठनीय (डिफ़ॉल्ट)

root@kitploit:~
CVE-2026-45185 (Dead.Letter) — Exim Vulnerability Assessment
============================================================

[CHECK] Exim स्थापना की जाँच कर रहा है...
[WARN]  Exim बाइनरी मिला: /usr/sbin/exim4
[CHECK] Exim संस्करण की जाँच कर रहा है...
        पाया गया संस्करण: 4.99.1
[FAIL]  Exim 4.99.1 संवेदनशील सीमा (4.97 – 4.99.2) में है।
[CHECK] TLS लाइब्रेरी लिंकेज (GnuTLS बनाम OpenSSL) की जाँच कर रहा है...
[FAIL]  Exim GnuTLS से लिंक है — यह बिल्ड प्रभावित है।
[CHECK] CHUNKING (BDAT) विज्ञापन कॉन्फ़िगरेशन की जाँच कर रहा है...
        कॉन्फ़िग फ़ाइल: /etc/exim4/exim4.conf
[WARN]  chunking_advertise_hosts अक्षम नहीं है — BDAT सक्रिय है (डिफ़ॉल्ट रूप से सभी होस्ट को विज्ञापन)।
        सुझाव: BDAT को वर्कअराउंड के रूप में अक्षम करने के लिए अपने मुख्य कॉन्फ़िग में 'chunking_advertise_hosts =' (खाली मान) जोड़ें।
[CHECK] सिस्टम-स्तरीय शोषण शमन की जाँच (सूचनात्मक)...
[PASS]  ASLR: पूर्ण यादृच्छिकीकरण (randomize_va_space=2)
        glibc संस्करण: 2.35 (2.32+ में मजबूत हीप मेटाडेटा जाँच है)
[WARN]  systemd: MemoryDenyWriteExecute सेट नहीं — यूनिट में जोड़ने की अनुशंसा
[WARN]  systemd: NoNewPrivileges सेट नहीं

------------------------------------------------------------
निर्णय
------------------------------------------------------------
संवेदनशील — CVE-2026-45185
  कारण: Exim संस्करण 4.99.1 संवेदनशील सीमा 4.97–4.99.2 में है

अनुशंसित कार्रवाइयाँ:
  1. Exim को 4.99.3 या बाद के संस्करण में अपग्रेड करें (प्राथमिक फिक्स)
  2. वर्कअराउंड के रूप में, exim कॉन्फ़िग में 'chunking_advertise_hosts =' (खाली) सेट करें
  3. systemd यूनिट में MemoryDenyWriteExecute=yes और NoNewPrivileges=yes जोड़ें
  4. सुनिश्चित करें कि ASLR 2 पर सेट है: echo 2 > /proc/sys/kernel/randomize_va_space
------------------------------------------------------------

JSON आउटपुट (--json)

root@kitploit:~
{
  "cve": "CVE-2026-45185",
  "alias": "Dead.Letter",
  "host": "mailserver-01",
  "timestamp": "2026-05-12T17:00:00Z",
  "verdict": "vulnerable",
  "reason": "Exim version 4.99.1 is in vulnerable range 4.97–4.99.2",
  "exit_code": 1,
  "findings": {
    "exim_binary": "/usr/sbin/exim4",
    "exim_version": "4.99.1",
    "exim_version_vulnerable": "true",
    "tls_library": "gnutls",
    "tls_library_detected": "gnutls",
    "exim_config": "/etc/exim4/exim4.conf",
    "chunking_advertised": "true",
    "aslr_level": "2",
    "glibc_version": "2.35"
  },
  "mitigations": [
    "aslr=full"
  ]
}

CI/CD एकीकरण

GitHub Actions

root@kitploit:~
- name: CVE-2026-45185 के लिए जाँच करें
  run: |
    chmod +x check_cve_2026_45185.sh
    ./check_cve_2026_45185.sh --json | tee vuln-report.json
    exit $(jq '.exit_code' vuln-report.json)

- name: कमजोरी रिपोर्ट अपलोड करें
  if: always()
  uses: actions/upload-artifact@v4
  with:
    name: cve-2026-45185-report
    path: vuln-report.json

GitLab CI

root@kitploit:~
check-exim-vuln:
  stage: security
  script:
    - chmod +x check_cve_2026_45185.sh
    - ./check_cve_2026_45185.sh --json > vuln-report.json
  artifacts:
    when: always
    paths:
      - vuln-report.json
  allow_failure: false

Ansible

root@kitploit:~
- name: CVE-2026-45185 जाँच चलाएँ
  script: check_cve_2026_45185.sh --json
  register: vuln_check
  failed_when: vuln_check.rc == 1
  changed_when: false

- name: कमजोरी रिपोर्ट दिखाएँ
  debug:
    msg: "{{ vuln_check.stdout | from_json }}"

jq के साथ JSON आउटपुट पार्स करना

root@kitploit:~
# केवल निर्णय प्राप्त करें
./check_cve_2026_45185.sh --json | jq -r '.verdict'

# जाँचें कि कोई विशिष्ट शमन मिला है
./check_cve_2026_45185.sh --json | jq '.mitigations | contains(["aslr=full"])'

# कई होस्ट पर चलाएँ और परिणाम एकत्र करें
for host in mail1 mail2 mail3; do
  ssh "$host" 'bash -s' < check_cve_2026_45185.sh --json
done | jq -s '.'

उपचार

प्राथमिक फिक्स — Exim अपग्रेड करें

root@kitploit:~
# डेबियन / उबंटू
apt-get update && apt-get install --only-upgrade exim4

# RHEL / CentOS / Fedora
dnf upgrade exim

# स्रोत से
# 4.99.3 https://ftp.exim.org/pub/exim/exim4/ से डाउनलोड करें
# और अपने मौजूदा Local/Makefile सेटिंग्स के साथ पुनर्निर्माण करें

अपग्रेड के बाद सत्यापित करें:

root@kitploit:~
exim -bV | head -1
# अपेक्षित: Exim version 4.99.3 ...

अस्थायी वर्कअराउंड — CHUNKING/BDAT अक्षम करें

यदि आप तुरंत अपग्रेड नहीं कर सकते हैं, तो अपने Exim कॉन्फ़िग के मुख्य कॉन्फ़िगरेशन अनुभाग में निम्नलिखित पंक्ति जोड़ने से BDAT विज्ञापन पूरी तरह से अक्षम हो जाता है, जिससे आक्रमण वेक्टर अवरुद्ध हो जाता है:

root@kitploit:~
chunking_advertise_hosts =

खाली मान का अर्थ है "कोई होस्ट नहीं" — Exim अब EHLO प्रतिक्रियाओं में CHUNKING एक्सटेंशन का विज्ञापन नहीं करेगा। यह परिवर्तन करने के बाद Exim को पुनरारंभ करें:

root@kitploit:~
# डेबियन / उबंटू
systemctl restart exim4

# अन्य systemd सिस्टम
systemctl restart exim

सत्यापित करें कि CHUNKING अब विज्ञापित नहीं है:

root@kitploit:~
# कनेक्ट करें और EHLO प्रतिक्रिया जाँचें — CHUNKING दिखाई नहीं देना चाहिए
echo QUIT | openssl s_client -connect localhost:25 -starttls smtp 2>/dev/null \
  | grep -i chunking
# कोई आउटपुट नहीं = CHUNKING अक्षम है

यह एक वर्कअराउंड है, फिक्स नहीं। कुछ भेजने वाले मेल सर्वर बड़े संदेश वितरण के लिए BDAT का उपयोग करते हैं। इसे अक्षम करने से उन प्रेषकों के साथ संगतता समस्याएँ हो सकती हैं। जितनी जल्दी हो सके 4.99.3 में अपग्रेड करें।

systemd यूनिट को हार्डन करना (गहराई में रक्षा)

पैच किए गए सिस्टम पर भी, Exim systemd यूनिट में ये निर्देश जोड़ने से भविष्य में किसी भी मेमोरी भ्रष्टाचार कमजोरी के प्रभाव को कम किया जा सकता है:

root@kitploit:~
# /etc/systemd/system/exim4.service.d/hardening.conf
[Service]
NoNewPrivileges=yes
MemoryDenyWriteExecute=yes
ProtectSystem=strict
PrivateTmp=yes
RestrictAddressFamilies=AF_INET AF_INET6
SystemCallFilter=@system-service
root@kitploit:~
systemctl daemon-reload && systemctl restart exim4

सीमाएँ

  • स्क्रिप्ट केवल स्थैतिक पहचान करती है। यह कमजोरी का शोषण करने का प्रयास नहीं करती या लक्ष्य सिस्टम की विशिष्ट रनटाइम स्थितियों के तहत शोषण क्षमता की पुष्टि नहीं करती।
  • उन सिस्टमों पर जहां Exim बाइनरी निष्पादित नहीं की जा सकती (जैसे कंटेनर में अनुमति बाधाएँ), TLS लाइब्रेरी पहचान ldd और strings पर निर्भर करती है, जो कम विश्वसनीय हो सकती है।
  • Exim संस्करण 4.97 से नीचे इस विशिष्ट CVE के लिए ज्ञात प्रभावित सीमा से बाहर हैं, लेकिन वे अनुरक्षित नहीं हैं और अन्य अनपैच मुद्दों के लिए संवेदनशील होने की संभावना है। फिर भी अपग्रेड करने की अनुशंसा की जाती है।
  • CHUNKING वर्कअराउंड की जाँच करने के लिए स्क्रिप्ट को Exim कॉन्फ़िगरेशन फ़ाइल तक पढ़ने की पहुँच की आवश्यकता है। यदि पर्याप्त विशेषाधिकार के बिना चलाया जाता है, तो कॉन्फ़िग जाँच चरण विफल होने के बजाय अनिर्णायक रिपोर्ट करेगा।

संदर्भ

  • The Hacker News — नया Exim BDAT कमजोरी GnuTLS बिल्ड को संभावित कोड निष्पादन के लिए उजागर करता है
  • Exim प्रोजेक्ट — सुरक्षा दस्तावेज़ीकरण
  • Exim विनिर्देश — CHUNKING (chunking_advertise_hosts)
  • Exim विनिर्देश — TLS कॉन्फ़िगरेशन
  • XBOW Security Lab
टूल डाउनलोड करें