
textract के लिए एडवाइज़री ⌯⌲ 15 000 साप्ताहिक डाउनलोड
textract, संस्करण 2.5.0 तक, कई एक्सट्रैक्टरों को आपूर्ति की गई फ़ाइल पथ के माध्यम से OS कमांड इंजेक्शन की अनुमति देता है। कई कोड पथ उस फ़ाइल पथ को अपर्याप्त सैनिटाइज़ेशन के साथ child_process.exec() में पास करते हैं। एक हमलावर जो फ़ाइल नाम या पथ को प्रभावित कर सकता है, कमांड लाइन से बाहर निकलकर होस्ट पर मनमाने कमांड चला सकता है।
| उत्पाद | प्रभावित संस्करण | फिक्स्ड संस्करण |
|---|
| textract | 2.5.0 तक के सभी संस्करण | 2026-03-24 तक कोई फिक्स उपलब्ध नहीं |
CVE-2026-26831CWE-78 - OS कमांड इंजेक्शन9.8 (Critical)CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:Hlib/extractors/doc.jslib/extractors/rtf.jslib/extractors/dxf.jslib/extractors/images.jslib/util.jsएक उदाहरण doc.js एक्सट्रैक्टर है:
exec('antiword -m UTF-8.txt "' + filePath + '"', ...)
दूसरा rtf.js पथ हैंडलिंग है, जो शेल कमांड निष्पादित करने से पहले केवल रिक्त स्थानों को एस्केप करता है। यह ;, बैकटिक्स या $() जैसे मेटाकैरेक्टर को नहीं रोकता।
एप्लिकेशन अक्सर उपयोगकर्ता द्वारा अपलोड किए गए दस्तावेज़ों पर textract का उपयोग करते हैं। उस स्थिति में, एक दुर्भावनापूर्ण फ़ाइल नाम टेक्स्ट निष्कर्षण के दौरान कमांड निष्पादन को ट्रिगर कर सकता है।
एक इनपुट फ़ाइल नाम जैसे:
test";whoami;".doc
कमजोर एक्सट्रैक्टर चलने पर कोटेड कमांड स्ट्रिंग से बाहर निकल सकता है।
लेखन के समय कोई फिक्स्ड npm रिलीज़ उपलब्ध नहीं है।
यदि आप अभी भी इस पैकेज पर निर्भर हैं:
textract को हमलावर-नियंत्रित फ़ाइल पथ पास न करें।exec() को तर्क-सुरक्षित प्रक्रिया निष्पादन से बदलें।