제출 #997956: PaddlePaddle PaddleX up to 3.7.2 (latest release; vulnerable code also confirmed at HEAD commit ffb64904d23708863ff5b8da312a5cbd52a7f462) Code Injection정보

제목PaddlePaddle PaddleX up to 3.7.2 (latest release; vulnerable code also confirmed at HEAD commit ffb64904d23708863ff5b8da312a5cbd52a7f462) Code Injection
설명A vulnerability was found in PaddleX up to 3.7.2 and classified as high 8.8. Affected is the NormalizeImage preprocessor of the text detection component (paddlex/inference/models/text_detection/processors.py). The manipulation of the argument scale, a string field taken from the model directory's inference.yml, leads to code injection: the value is passed to eval() without validation. It is possible to launch the attack remotely. User interaction is required: the victim must obtain and load a crafted model directory, e.g. via `paddleocr text_detection --model_dir det` (PaddleOCR 3.x, which pins paddlex[ocr-core]>=3.7.0,<3.8.0) or the PaddleX predictor API. Model weights stay untouched, so weight-level integrity checks do not notice the manipulation. Technical Details - Affected file/function: paddlex/inference/models/text_detection/processors.py, NormalizeImage.__init__ (lines 241-242: `if isinstance(scale, str): scale = eval(scale)`) - Vulnerable parameter: PreProcess.transform_ops.NormalizeImage.scale in inference.yml - Attack vector: Network (model directory distributed over the network) - Privileges required: None - Trigger condition: the loading process parses inference.yml and passes the string scale to NormalizeImage; the crafted expression executes arbitrary Python code and can return the benign 1./255. value so inference continues without any error or log. Impact - Confidentiality: High (arbitrary code execution exposes process memory, files and credentials of the loading user) - Integrity: High (arbitrary file write/modification in the user context) - Availability: High (arbitrary code can crash or take over the process) CVSS v3.1 Score: 8.8 (High) Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H Timeline - Discovered: 2026-09-24 - Vendor notified: [pending] - Patch released: [pending] - Public disclosure: [pending] Countermeasure Replace eval() with a restricted parser (an ast-based evaluator allowing only numeric constants and + - * / operations, keeping backward compatibility with legacy strings such as "1./255."), and treat inference.yml as untrusted input at the same level as model weights.
원천⚠️ https://github.com/PaddlePaddle/PaddleX/issues/5210
사용자
 Dem0 (UID 82596)
제출2026. 09. 24. PM 06:06 (19 날 ago)
모더레이션2026. 10. 11. PM 09:30 (17 days later)
상태수락
VulDB 항목416780 [PaddlePaddle PaddleX 까지 3.7.2 Preprocessor processors.py NormalizeImage.__init__ scale 권한 상승]
포인트들20

Interested in the pricing of exploits?

See the underground prices here!