{"id":"CVE-2024-8238","aliases":["GHSA-r229-5wgf-f28g","PYSEC-2026-1094"],"title":"Aim Improper Access Control","summary":"Aim Improper Access Control","severity":"medium","cvss":5.9,"cvssVector":"CVSS:3.0/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N","vendor":"aim","product":"aim","ecosystem":"pip","affected":["aim >= 3.0.0, <= 3.22.0"],"published":"2025-03-20","updated":"2026-07-07","source":"OSV","sourceUrl":"https://osv.dev/vulnerability/GHSA-r229-5wgf-f28g","references":[{"url":"https://nvd.nist.gov/vuln/detail/CVE-2024-8238"},{"url":"https://github.com/aimhubio/aim"},{"url":"https://github.com/aimhubio/aim/blob/main/aim/storage/query.py#L45"},{"url":"https://huntr.com/bounties/4e140ef9-f6d1-4e68-a44c-3b9e856924d3"}],"tags":["osv","pip"],"epss":0.00774,"epssPercentile":0.54249,"ingestedAt":"2026-07-08T18:25:52.506Z","slug":"CVE-2024-8238","body":"## Overview\n\nIn version 3.22.0 of aimhubio/aim, the AimQL query language uses an outdated version of the safer_getattr() function from RestrictedPython. This version does not protect against the str.format_map() method, allowing an attacker to leak server-side secrets or potentially gain unrestricted code execution. The vulnerability arises because str.format_map() can read arbitrary attributes of Python objects, enabling attackers to access sensitive variables such as os.environ. If an attacker can write files to a known location on the Aim server, they can use str.format_map() to load a malicious .dll/.so file into the Python interpreter, leading to unrestricted code execution.\n\n## Affected packages\n\n- `aim >= 3.0.0, <= 3.22.0`\n\n## Remediation\n\nRefer to the advisory for the patched release.","depth":"sunlit","depthScore":33,"depthScoreParts":{"impact":32.5,"likelihood":0.2,"exploitation":0,"ransomware":0},"changes":[]}