Bug 2345673

Summary: CVE-2025-26519 python-pandas: input-controlled out-of-bounds write primitive in iconv() [fedora-40]
Product: [Fedora] Fedora Reporter: Avinash Hanwate <ahanwate>
Component: python-pandasAssignee: Jonathan Wright <jonathan>
Status: CLOSED NOTABUG QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: high Docs Contact:
Priority: high    
Version: 40CC: code, epel-packagers-sig, jonathan, mail, neuro-sig, orion, python-packagers-sig, sergio.pasra
Target Milestone: ---Keywords: Security, SecurityTracking
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard: {"flaws": ["e723ba4c-f49b-40e6-b88e-51e52dd5fcf5"]}
Fixed In Version: Doc Type: No Doc Update
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2025-02-14 11:05:45 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 2345671    

Description Avinash Hanwate 2025-02-14 05:14:34 UTC
More information about this security flaw is available in the following bug:

https://bugzilla.redhat.com/show_bug.cgi?id=2345671

Disclaimer: Community trackers are created by Red Hat Product Security team on a best effort basis. Package maintainers are required to ascertain if the flaw indeed affects their package, before starting the update process.

Comment 1 Ben Beasley 2025-02-14 11:05:45 UTC
The CVE pertains to the iconv() implementation in musl-libc.

The only known code from musl-libc in Pandas is a small set of C preprocessor macros in pandas/_libs/include/pandas/portable.h:

// GH-23516 - works around locale perf issues
// from MUSL libc, licence at LICENSES/MUSL_LICENSE
#define isdigit_ascii(c) (((unsigned)(c) - '0') < 10u)
#define getdigit_ascii(c, default)                                             \
  (isdigit_ascii(c) ? ((int)((c) - '0')) : default)
#define isspace_ascii(c) (((c) == ' ') || (((unsigned)(c) - '\t') < 5))
#define toupper_ascii(c) ((((unsigned)(c) - 'a') < 26) ? ((c) & 0x5f) : (c))
#define tolower_ascii(c) ((((unsigned)(c) - 'A') < 26) ? ((c) | 0x20) : (c))

Therefore, Pandas cannot be affected.