---
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.53783
ingestedAt: '2026-07-08T18:25:52.506Z'
---

## Overview

In 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.

## Affected packages

- `aim >= 3.0.0, <= 3.22.0`

## Remediation

Refer to the advisory for the patched release.
