Skip to content
KitploitKITPLOIT
उपकरणएक्सप्लॉइटब्लॉग
Log in
जमा करें
उपकरणएक्सप्लॉइटब्लॉग
जमा करें

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
drupal-ckeditor-fileisimage — Drupal 11.4.8 - उच्च - रिमोट - अपलोड - CKEditor 5 इमेज अपलोड अभी भी FileIsImage को छोड़ देता है | Kitploit
उपकरण/GitHubGitHub/abraxas/drupal-ckeditor-fileisimage
भेद्यता विश्लेषणशोषणवेब एप्लिकेशन शोषणसुरक्षा वर्चुअलाइजेशनवेब सुरक्षापेनिट्रेशन टेस्टिंगलैब और अभ्यास
GitHubabraxas/drupal-ckeditor-fileisimage

drupal-ckeditor-fileisimage

Drupal 11.4.8 - उच्च - रिमोट - अपलोड - CKEditor 5 इमेज अपलोड अभी भी FileIsImage को छोड़ देता है

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

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

सभी देखें →

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

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

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

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

Abraxas Labs - drupal-ckeditor-fileisimage

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  drupal-ckeditor-fileisimage

राइट-अप: https://abraxaslabs.tech/research/drupal-ckeditor-fileisimage

drupal-ckeditor-fileisimage

वर्ग: अप्रतिबंधित अपलोड / संग्रहीत XSS पहुँच: रिमोट

Drupal core 11.4.8 (61044508) - Drupal

SA-CORE-2026-009 ने JSON:API और REST इमेज फ़ील्ड्स पर FileIsImage जोड़ा। CKEditor5ImageController::getImageUploadValidators अभी भी केवल FileExtension, FileSizeLimit, और FileImageDimensions लौटाता है। जब फ़ाइल एक वैध इमेज नहीं होती, तो FileImageDimensions बिना किसी उल्लंघन के लौट आता है। फ़ाइल नाम का एक्सटेंशन ही शेष जाँच है।

CKEditor 5 इमेज अपलोड वाले टेक्स्ट फ़ॉर्मेट का उपयोगकर्ता x.png नाम की गैर-इमेज बाइट्स को /ckeditor5/upload-image/{editor} पर POST कर सकता है और 201 के साथ एक सार्वजनिक फ़ाइल URL प्राप्त कर सकता है।

IDअभी तक कोई CVE नहीं
वर्गअप्रतिबंधित अपलोड / स्निफ़ किए जाने पर संग्रहीत XSS
पहुँचरिमोट (प्रमाणित फ़ॉर्मेट उपयोगकर्ता)
CWECWE-434, CWE-79
CVSSमध्यम: 5.4 CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N
उत्पादDrupal core
प्रभावित11.4.8 (61044508071749629aaf3380aa85971e94df9e84)
प्रमाणीकरणCKEditor 5 इमेज अपलोड वाले टेक्स्ट फ़ॉर्मेट का प्रमाणित उपयोगकर्ता (Standard पर basic_html / full_html)
लाइसेंसGNU Affero GPL v3.0
लैबकेवल 127.0.0.1

एक हमलावर क्या कर सकता है

ऐसे खाते की आवश्यकता है जो ऐसे फ़ॉर्मेट का उपयोग कर सके जिसके एडिटर में image_upload.status true हो। Standard पर ये basic_html और full_html हैं। बिना खाते वाला पूर्ण अजनबी इस रूट तक नहीं पहुँच सकता (_entity_access: editor.use के साथ CSRF)।

विशेषाधिकारविधि / सिंकप्रकारलैब-प्रमाणित या अनुमानित
sites/default/files/inline-images/ के अंतर्गत सार्वजनिक .png में गैर-इमेज बाइट्स लिखनाPOST /ckeditor5/upload-image/{editor} multipart uploadअखंडतालैब-प्रमाणित। x.png ने 201 और url=/sites/default/files/inline-images/x.png लौटाया
उन बाइट्स को सार्वजनिक फ़ाइल URL पर वापस पढ़नाJSON url का GETरेकॉनलैब-प्रमाणित। 200, 49 बाइट्स, बॉडी में DRUPAL-CKEDITOR-FILEISIMAGE-WITNESS था
यदि वेब सर्वर या ब्राउज़र फ़ाइल को HTML/JS के रूप में स्निफ़ करे तो किसी विज़िटर में संग्रहीत XSSवही सार्वजनिक URL, Content-Type इमेज नहींअखंडता (विज़िटर ओरिजिन)अनुमानित। इस लैब ने Apache MIME नहीं बदला। Drupal ने बाइट्स संग्रहीत किए।
उसी रूट से एक वास्तविक इमेज अपलोड करनानियंत्रण control.png 1x1 PNGइच्छितलैब-प्रमाणित। 201

इस अवशेष पर बंद: .php के माध्यम से PHP/RCE (लैब-प्रमाणित 422 FileExtension); बिना प्रमाणीकरण अपलोड; JSON:API/REST ImageItem (वे पथ पहले से ही FileIsImage जोड़ते हैं); LPE; डिफ़ॉल्ट इमेज-एक्सटेंशन अनुमति सूची पर एक शेल।

मैंने इसे कैसे खोजा

2026 SA-CORE लहर के बाद मैंने Drupal 11.4.8 को पिन किया। JSON:API पहले से ही अनुपस्थित कंस्ट्रेंट जोड़ता है:

if (\is_a($field_definition->getItemDefinition()->getClass(), ImageItem::class, TRUE) && !array_key_exists('FileIsImage', $validators)) {
  $validators['FileIsImage'] = [];
}

REST FileUploadResource.php भी वही करता है। CKEditor 5 को फ़ाइलनाम + आकार + आयामों पर छोड़ दिया गया था:

return [
  'FileExtension' => [
    'extensions' => implode(' ', $allowed_extensions),
  ],
  'FileSizeLimit' => [
    'fileLimit' => $max_filesize,
  ],
  'FileImageDimensions' => [
    'maxDimensions' => $max_dimensions,
  ],
];

FileImageDimensionsConstraintValidator किसी उल्लंघन के बिना लौट आता है जब फ़ाइल एक वैध छवि नहीं होती। Hub drupal:11.4 को 11.4.9 पर तैरता छोड़ा गया था; यह पिन composer-सटीक drupal/recommended-project:11.4.8 है। 11.4.0 ने Standard से Article हटा दिया, इसलिए यह छवि इंस्टॉल के बाद core/recipes/article_content_type लागू करती है ताकि /node/add/article CKEditor 5 लोड करे।

पहले से दर्ज गलत रास्ते: FileImageDimensions को MIME जाँच मानना (यह एक वैध छवि पर आयाम हैं, और अन्यथा कोई प्रभाव नहीं); डिफ़ॉल्ट allowlist पर PHP शेल का दावा करना (.php 422 है); तैरते hub टैग का उपयोग करना और 11.4.9 को आते देखना। नाटक: एक reverse shell। Oracle नकली x.png पर 201 है और उन्हीं बाइट्स पर 422 है जिनका नाम x.php रखा गया हो।

वही पिन के अवशेष: oEmbed second-hop SSRF।

Lab

python3 drupal-ckeditor-fileisimage-Abraxas-Labs.py

या

cd lab
./run.sh

केवल http://127.0.0.1:19500 को लक्षित करें। php:8.4-apache-trixie, SQLite पर लाइव Drupal 11.4.8 Standard।

SUCCESS drupal-ckeditor-fileisimage png-http=201 php-http=422 control-png-http=201 editor=basic_html stored-http=200 stored-has-witness=yes url=/sites/default/files/inline-images/x.png DRUPAL-CKEDITOR-FILEISIMAGE-WITNESS

समाधान

CKEditor5ImageController::getImageUploadValidators में 'FileIsImage' => [] जोड़ें। FileExtension को बनाए रखें ताकि .php 422 ही रहे। Media Library में इमेज मीडिया प्रकारों को सामान्य FileItem के बजाय ImageItem का उपयोग करना चाहिए ताकि उन्हें वही प्रतिबंध विरासत में मिले।

संदर्भ

  • github.com/drupal/drupal टैग 11.4.8 (61044508071749629aaf3380aa85971e94df9e84)
  • CKEditor5ImageController.php
  • निकटवर्ती पैच किया गया (यह अपलोड नहीं): SA-CORE-2026-009
  • वही टैग: drupal-oembed-ssrf
  • CWE-434 · CWE-79

लाइसेंस

GNU Affero GPL v3.0. देखें LICENSE. केवल लूपबैक लैब। कोई वारंटी नहीं।

टूल डाउनलोड करें