- सुरक्षा शोध टीम ने CodeRabbit के production server पर remote code execution(RCE) और API token·secret information leak हासिल किया
- Rubocop का उपयोग करने वाले PR के जरिए environment variables की चोरी हुई, और PostgreSQL access तथा 10 लाख repositories को read/write करना संभव था
- GitHub App की private key लीक होने से public/private repos सहित बड़े पैमाने पर repositories में malicious code inject करना, source code बदलना जैसी वास्तविक क्षति संभव थी
- CodeRabbit ने भेद्यता रिपोर्ट के कुछ घंटों के भीतर तुरंत प्रतिक्रिया दी और सुरक्षा उपायों को मजबूत किया
- बाहरी tools चलाते समय sandbox isolation, least privilege, network blocking आदि से security incidents रोकने की आवश्यकता पर जोर दिया गया
परिचय
- जनवरी 2025 में, Kudelski Security की शोध टीम ने CodeRabbit की गंभीर सुरक्षा भेद्यता सार्वजनिक की
- PR review automation tool के रूप में व्यापक रूप से इस्तेमाल होने वाले CodeRabbit में remote code execution(RCE), environment variables और sensitive information leak, तथा 10 लाख से अधिक repositories पर Read/Write access हासिल करने जैसी गंभीर समस्याएँ पाई गईं
- यह लेख Black Hat USA में प्रस्तुत सार्वजनिक भेद्यता के विस्तृत विश्लेषण को समेटता है, और code review tools तथा integrated systems की भेद्यताओं के वास्तविक उदाहरण के रूप में महत्वपूर्ण संदर्भ मूल्य रखता है
- रिपोर्ट की गई भेद्यताओं को रिपोर्ट होते ही जल्दी patch कर दिया गया
CodeRabbit का अवलोकन
- CodeRabbit GitHub/GitLab Marketplace में सबसे अधिक install किया गया AI-आधारित code review app है
- यह दोनों प्लेटफॉर्म पर 10 लाख repositories और 50 लाख pull requests की समीक्षा करता है
- जब भी उपयोगकर्ता PR बनाता या अपडेट करता है, AI engine code का विश्लेषण कर comments और suggestions अपने आप तैयार करता है
- code summary, security vulnerability detection, improvements सुझाना, diagram generation जैसे कार्यों के जरिए developer productivity में बड़ा सुधार होता है
CodeRabbit का उपयोग और permission structure
- Pro plan linter·SAST(static analysis) tools integration की सुविधा देता है
- GitHub account authentication और app install करते समय चयनित repositories पर read/write permissions दी जाती हैं
- यदि इस permission management का दुरुपयोग हो, तो install की गई सभी repositories के code पर सीधा प्रभाव डाला जा सकता है
बाहरी tools का execution और exploit की खोज
- CodeRabbit PR में code changes का पता लगते ही कई बाहरी static analysis tools (जैसे Rubocop) अपने आप चलाता है
- Rubocop
.rubocop.yml configuration file का उपयोग कर बाहरी Ruby extension files (ext.rb आदि) को load कर सकता है
- हमलावर
.rubocop.yml और ext.rb में malicious code डालकर PR submit कर सकता है, जिससे CodeRabbit remote server पर वही code चला दे
- इस तकनीक से चलाए गए code ने server के सभी environment variables हमलावर के server पर भेज दिए
environment variable leak का विश्लेषण
- लीक हुए environment variables में विभिन्न services के API keys, tokens, passwords शामिल थे
- Anthropic/OpenAI API keys, Encryption salt/password, GitHub App private key, PostgreSQL connection info आदि
- RCE के जरिए database access, code changes, internal service information leak जैसी दूसरे स्तर की क्षति बहुत बड़ी और व्यापक हो सकती थी
- production server पर और भी malicious exploration संभव था, लेकिन service operations को ध्यान में रखते हुए न्यूनतम पुष्टि के बाद इसे रोक दिया गया
10 लाख repositories पर Read/Write access हासिल करना
- environment variables में शामिल GITHUB_APP_PEM_FILE(private key) का उपयोग करके GitHub API में authenticate करना संभव था
- CodeRabbit जिन सभी repositories तक पहुँच सकता था (public/private सहित), उन पर
- source code read/write, release files को replace करना(supply chain attack), git history बदलना जैसी बेहद शक्तिशाली permissions का इस्तेमाल संभव था
- reproduction code(PoC) सार्वजनिक किया गया, जिससे वास्तविक exploitation की संभावना सिद्ध हुई
PoC सारांश
- PyGitHub जैसी libraries का उपयोग करके लीक हुई private key, App ID आदि से किसी भी repository के लिए access token जारी किया जा सकता था
- इस token के जरिए private repository clone करना, files बदलना, नए commits करना, release files में छेड़छाड़ करना आदि को automate किया जा सकता था
CodeRabbit की internal/private repositories के compromise की संभावना
- CodeRabbit organization भी अपने service पर इसे install करके उपयोग कर रहा था, इसलिए CodeRabbit की internal source code repositories तक पहुँच और उन्हें clone करना भी संभव था
- सिर्फ organization name पता हो तो install ID lookup के बाद सीधे उस repo list तक पहुँचना संभव था
प्रभाव का सारांश
- private repositories तक unauthorized access और personal information leak
- source code manipulation, malicious code/backdoor insertion जैसी supply chain attack की धमकी
- GitHub Actions जैसी अतिरिक्त भेद्यताओं से chaining की संभावना
- प्रत्यक्ष RCE के कारण data destruction, service outage, और अन्य services पर cascading damage की आशंका
संदर्भ और AI judgment की सीमाएँ
- हमले के दौरान भी PR स्वयं CodeRabbit द्वारा सामान्य रूप से review किया गया, और भेद्यता चेतावनी comment छोड़ा गया था, लेकिन वास्तविक threat syntax को पहचान नहीं पाया
- यह दिखाता है कि AI code review tools वास्तविक जोखिम वाली स्थिति के पूरे संदर्भ को समझ नहीं पाते
प्रतिक्रिया और सिफारिशें
- CodeRabbit ने भेद्यता रिपोर्ट के कुछ घंटों के भीतर Rubocop disable किया, secrets rotate किए, और system audit किया
- समस्या sandbox न लगे हुए tool(Rubocop) में हुई; कार्रवाई के बाद सभी बाहरी tools को isolated environment में चलाने के लिए सुधार किया गया
- सुरक्षा मजबूत करने के लिए बाहरी tool execution environments में environment variables को न्यूनतम रखना, network access IP restrictions, internet access blocking जैसी defensive design की आवश्यकता पर जोर दिया गया
responsible disclosure और निष्कर्ष
- जनवरी 2025 में रिपोर्ट के बाद तेज प्रतिक्रिया और remediation की गई
- बात PoC तक सीमित रही, लेकिन यह पुष्टि हुई कि कोई malicious attacker high-value repos चुनकर बड़े पैमाने पर ransomware या विनाशकारी supply chain attacks में इसका आसानी से दुरुपयोग कर सकता था
- बाहरी analysis tools और AI-आधारित automation services के साथ integration करते समय sandbox और least privilege principle लागू करने का महत्व फिर से स्पष्ट हुआ
अभी कोई टिप्पणी नहीं है.