CVE-2026-44265
WysokieCVSS 7.4Streszczenie
W bibliotece Elo w wersjach przed 1.0.1 programistyczne API AST przyjmuje dowolne wartości z danych deserializowanych z JSON, wyjścia wtyczek lub innych nieotypowanych źródeł i interpoluje je do generowanego kodu JavaScript, Ruby, Python lub SQL bez walidacji składni w czasie wykonania. Spreparowane wartości stają się wykonywalnymi wyrażeniami lub identyfikatorami, co umożliwia wykonanie dowolnego kodu oraz wstrzyknięcie SQL.
Ocena ryzyka
Atakujący może wykonać dowolny kod w celach JavaScript, Ruby i Python oraz przeprowadzić wstrzyknięcie SQL w celu SQL, co prowadzi do kompromitacji systemu i bazy danych.
Rekomendacja
Zaktualizuj bibliotekę Elo do wersji 1.0.1 lub nowszej, która waliduje wartości AST przed interpolacją do generowanego kodu.
Inne podatności w Elo
Zobacz wszystkie- CVE-2026-44267Krytyczne
W bibliotece Elo w wersjach przed 1.0.1 zwykłe łańcuchy znaków przekazywane do parsera mogą wykorzystać właściwość .constructor.constructor do uzyskania dostępu do obiektu JavaScript Function. Powstały kod JavaScript wykonuje kod wybrany przez atakującego w środowisku hosta, co umożliwia wykonanie skryptu w przeglądarce oraz wykonanie dowolnego kodu Node.js.
- CVE-2026-44266Krytyczne
W bibliotece Elo w wersjach przed 1.0.1 backend Ruby osadza tekst kontrolowany przez atakującego w podwójnie cytowanych łańcuchach Ruby bez escapowania znaku #. Formy interpolacji Ruby w emitterze literałów łańcuchowych lub gałęzi ograniczeń podtypów stają się wykonywalnym kodem Ruby, co umożliwia wykonanie kodu Ruby i poleceń powłoki.
Oryginalny opis (angielski, źródło NVD)
Elo is a purely functional expression language for no-code tools. Prior to 1.0.1, Elo's programmatic AST API accepts arbitrary values from JSON-deserialized input, plugin output, or other untyped sources and interpolates them into generated JavaScript, Ruby, Python, or SQL without runtime syntax validation. The affected fields are int_literal / float_literal .value, variable.name, member_access.property, object_literal keys, datapath segments, lambda.params[].name, and the SQL let binding name. Crafted values become executable expressions or identifiers, allowing arbitrary code execution in JavaScript, Ruby, and Python targets and SQL injection in the SQL target. This programmatic AST-object path is distinct from the plain-string constructor-chain sandbox escape. This issue is fixed in version 1.0.1.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

