Security Vulnerability Report
中文
CVE-2026-23634 CVSS 0.0 NONE

CVE-2026-23634

Published: 2026-01-16 20:15:50
Last Modified: 2026-03-04 14:43:22

Description

Pepr is a type safe K8s middleware. Prior to 1.0.5 , Pepr defaults to a cluster-admin RBAC configuration and does not explicitly force or enforce least-privilege guidance for module authors. The default behavior exists to make the “getting started” experience smooth: new users can experiment with Pepr and create resources dynamically without needing to pre-configure RBAC. This vulnerability is fixed in 1.0.5.

CVSS Details

CVSS Score
0.0
Severity
NONE
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:N

Configurations (Affected Products)

cpe:2.3:a:defenseunicorns:pepr:*:*:*:*:*:*:*:* - VULNERABLE
Pepr < 1.0.5

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
# CVE-2026-23634 PoC - 检查Pepr默认RBAC配置 # This PoC demonstrates the overprivileged RBAC configuration in Pepr < 1.0.5 import subprocess import json def check_pepr_clusterrolebinding(): """Check if Pepr is using cluster-admin ClusterRoleBinding""" try: # List all ClusterRoleBindings result = subprocess.run( ['kubectl', 'get', 'clusterrolebindings', '-o', 'json'], capture_output=True, text=True ) bindings = json.loads(result.stdout) for binding in bindings.get('items', []): # Check for Pepr-related bindings using cluster-admin subjects = binding.get('subjects', []) role_ref = binding.get('roleRef', {}) if role_ref.get('name') == 'cluster-admin': for subject in subjects: if 'pepr' in subject.get('name', '').lower(): print(f"[!] VULNERABLE: Found Pepr ClusterRoleBinding using cluster-admin") print(f" Binding Name: {binding['metadata']['name']}") print(f" Subject: {subject['kind']}/{subject['name']}") return True print("[+] SECURE: No Pepr cluster-admin bindings found") return False except Exception as e: print(f"[-] Error checking ClusterRoleBindings: {e}") return None def check_pepr_version(): """Check Pepr version""" try: result = subprocess.run( ['kubectl', 'get', 'deployment', '-n', 'pepr-system', '-o', 'json'], capture_output=True, text=True ) if result.returncode == 0: data = json.loads(result.stdout) for item in data.get('items', []): containers = item.get('spec', {}).get('containers', []) for container in containers: image = container.get('image', '') print(f"[*] Pepr image: {image}") else: print("[*] Pepr deployment not found in pepr-system namespace") except Exception as e: print(f"[-] Error checking version: {e}") def demonstrate_privilege_escape(): """Demonstrate potential privilege escape via Pepr module""" # Example: A Pepr module could create arbitrary resources malicious_yaml = ''' apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: malicious-binding roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: cluster-admin subjects: - apiGroup: rbac.authorization.k8s.io kind: User name: attacker ''' print("\n[!] Potential attack: A compromised Pepr module could create:") print(malicious_yaml) if __name__ == "__main__": print("=== CVE-2026-23634 PoC ===") print("Pepr < 1.0.5 Default cluster-admin RBAC Configuration\n") check_pepr_version() is_vulnerable = check_pepr_clusterrolebinding() if is_vulnerable: demonstrate_privilege_escape() print("\n[!] Mitigation: Upgrade Pepr to version 1.0.5 or later")

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2026-23634", "sourceIdentifier": "[email protected]", "published": "2026-01-16T20:15:49.733", "lastModified": "2026-03-04T14:43:21.853", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "Pepr is a type safe K8s middleware. Prior to 1.0.5 , Pepr defaults to a cluster-admin RBAC configuration and does not explicitly force or enforce least-privilege guidance for module authors. The default behavior exists to make the “getting started” experience smooth: new users can experiment with Pepr and create resources dynamically without needing to pre-configure RBAC. This vulnerability is fixed in 1.0.5."}, {"lang": "es", "value": "Pepr es un middleware de K8s con seguridad de tipos. Antes de la versión 1.0.5, Pepr se configura por defecto con una configuración RBAC de cluster-admin y no fuerza ni impone explícitamente directrices de mínimo privilegio para los autores de módulos. Este comportamiento predeterminado existe para que la experiencia de 'primeros pasos' sea fluida: los nuevos usuarios pueden experimentar con Pepr y crear recursos dinámicamente sin necesidad de preconfigurar RBAC. Esta vulnerabilidad se corrige en la versión 1.0.5."}], "metrics": {"cvssMetricV31": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:N", "baseScore": 0.0, "baseSeverity": "NONE", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "NONE", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "NONE", "integrityImpact": "NONE", "availabilityImpact": "NONE"}, "exploitabilityScore": 3.9, "impactScore": 0.0}, {"source": "[email protected]", "type": "Primary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:N", "baseScore": 4.3, "baseSeverity": "MEDIUM", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "LOW", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "NONE", "integrityImpact": "LOW", "availabilityImpact": "NONE"}, "exploitabilityScore": 2.8, "impactScore": 1.4}]}, "weaknesses": [{"source": "[email protected]", "type": "Primary", "description": [{"lang": "en", "value": "CWE-272"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:a:defenseunicorns:pepr:*:*:*:*:*:*:*:*", "versionEndExcluding": "1.0.5", "matchCriteriaId": "DC7900DF-C37E-4D04-9745-4A3E414A3806"}]}]}], "references": [{"url": "https://github.com/defenseunicorns/pepr/releases/tag/v1.0.5", "source": "[email protected]", "tags": ["Release Notes"]}, {"url": "https://github.com/defenseunicorns/pepr/security/advisories/GHSA-w54x-r83c-x79q", "source": "[email protected]", "tags": ["Vendor Advisory"]}]}}