Skip to content

Chameleon

v4.4.33 Bugfix

This release fixes issues for SREs watching stability and regressions.

✓ No known CVEs patched
Read the diff → Tool health → What is this tool? →

✓ No known CVEs patched in this version

Topics

ai-coding-assistant archetype ast-analysis claude-code claude-plugin code-conventions
+12 more
code-review code-style developer-tools javascript linter mcp mcp-server prompt-engineering python ruby rails typescript

Affected surfaces

rce_ssrf

Summary

AI summary

Fixed raw_sql_concat to correctly handle Ruby and Python constant interpolations, preventing witnessless SQL emission.

Changes in this release

Bugfix Medium

Fixes raw_sql_concat false negatives for Ruby and Python.

Fixes raw_sql_concat false negatives for Ruby and Python.

Source: llm_adapter@2026-07-19

Confidence: low

Bugfix Medium

Corrects raw_sql_concat to properly handle Ruby and Python interpolations.

Corrects raw_sql_concat to properly handle Ruby and Python interpolations.

Source: granite4.1:30b@2026-07-19-audit

Confidence: low

Full changelog

Fixed

  • The constant-only raw_sql_concat exemption (v4.4.20) worked for TypeScript
    ONLY; Ruby and Python were silently unprotected. _interpolates_only_constants
    extracted the interpolation slot with next(g for g in groups if g is not None),
    but re.findall on the multi-group alternation returns '' (empty string), not
    None, for groups that did not participate -- so it always picked group 1 (the
    TS ${...} slot) and read the Ruby #{...} / Python {...} slot as empty. A
    Rails/Django repositories cohort building safe SQL from a #{TABLE} / {COLUMNS}
    module constant therefore still tripped raw_sql_concat, still lost its canonical
    witness, and (via the paired v4.4.21 change) was emitted witnessless -- the exact
    regression the exemption was written to prevent, in two of the three languages.
    Fixed by testing the slot on truthiness (next((g for g in groups if g), "")),
    which selects the group that actually matched and falls through safely on an
    empty ${}. Found by the step-7 clean-code review.

Weekly OSS security release digest.

The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.

No spam, unsubscribe anytime.

Share this release

Track Chameleon

Get notified when new releases ship.

Sign up free

About Chameleon

All releases →

Related context

Earlier breaking changes

  • v3.0.0 MCP surface folded from 48 tools to 19; remaining 32 operator tools become actions on three dispatchers.

Beta — feedback welcome: [email protected]