""" PoC test for CWE-94: Authenticated RCE via exec() on user-supplied Python code. The /api/v1/system/debug/exec endpoint passes raw HTTP body to exec(), allowing arbitrary code execution when debug_mode is True. This test verifies that: 1. The exec() endpoint is removed from the codebase entirely. 2. No route matches /api/v1/system/debug/exec. """ import ast import pathlib # Resolve project root (one level up from tests/) _PROJECT_ROOT = pathlib.Path(__file__).resolve().parent.parent VULN_FILE = _PROJECT_ROOT / 'src' / 'langbot' / 'pkg' / 'api' / 'http' / 'controller' / 'groups' / 'system.py' def test_no_exec_call_in_system_controller(): """Verify there is no exec() call in system.py that takes user input.""" with open(VULN_FILE, 'r') as f: source = f.read() tree = ast.parse(source) exec_calls = [] for node in ast.walk(tree): if isinstance(node, ast.Call): func = node.func # Match bare exec() call if isinstance(func, ast.Name) and func.id == 'exec': exec_calls.append(node.lineno) assert len(exec_calls) == 0, ( f'Found exec() call(s) at line(s) {exec_calls} in system.py. User-supplied code must never be passed to exec().' ) def test_no_debug_exec_route(): """Verify the /debug/exec route is not registered.""" with open(VULN_FILE, 'r') as f: source = f.read() assert 'debug/exec' not in source, ( 'The /debug/exec route still exists in system.py. ' 'This endpoint allows arbitrary code execution and must be removed.' ) if __name__ == '__main__': test_no_exec_call_in_system_controller() test_no_debug_exec_route() print('All tests passed!')