Miggo Logo

CVE-2024-47533:
cobbler allows anyone to connect to cobbler XML-RPC server with known password and make changes

9.8

CVSS Score

Basic Information

EPSS Score
-
Published
11/18/2024
Updated
11/18/2024
KEV Status
No
Technology
TechnologyPython

Technical Details

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Package NameEcosystemVulnerable VersionsFirst Patched Version
cobblerpip>= 3.3.0, < 3.3.73.3.7
cobblerpip>= 3.0.0, < 3.2.33.2.3

Vulnerability Intelligence
Miggo AIMiggo AI

Miggo AIRoot Cause Analysis

The vulnerability stems from utils.get_shared_secret() in cobbler/utils.py. The function uses 'rb' (binary mode) with an encoding parameter in the open() call, which is invalid in Python. This always triggers an exception, causing the function to return -1 instead of the actual secret. The XML-RPC authentication mechanism accepts this -1 as valid credentials when combined with an empty username, enabling unauthorized access. The commit diff shows the problematic encoding addition to the binary mode file open operation, and the PoC demonstrates exploitation using these predictable credentials.

Vulnerable functions

Only Mi**o us*rs **n s** t*is s**tion

WAF Protection Rules

WAF Rule

### Summ*ry utils.**t_s**r**_s**r*t() *lw*ys r*turns -* - *llows *nyon* to *onn**t to *o**l*r XML-RP* *s us*r '' p*sswor* -* *n* m*k* *ny ***n**s. ### **t*ils utils.py **t_s**r**_s**r*t: ``` *** **t_s**r**_s**r*t() -> Union[str, int]: """ T

Reasoning

T** vuln*r**ility st*ms *rom utils.**t_s**r**_s**r*t() in *o**l*r/utils.py. T** *un*tion us*s 'r*' (*in*ry mo**) wit* *n *n*o*in* p*r*m*t*r in t** op*n() **ll, w*i** is inv*li* in Pyt*on. T*is *lw*ys tri***rs *n *x**ption, **usin* t** *un*tion to r*t