{"answers":{"affected":"2 open source packages ship an affected version, including liquidjs.","exploited":"It is not confirmed as exploited in the wild, but public exploit code for CVE-2026-106120 exists.","fix":"Upgrade liquidjs to 10.27.2 or later.","what":"CVE-2026-106120 is a medium-severity vulnerability in harttle liquidjs, published on 6 Oct 2026. Any signed-in user can exploit it over the network, with no action from the victim."},"fix_prompt":"Check this codebase for CVE-2026-106120 and fix it if it is affected.\n\nWhat it is: CVE-2026-106120 is a medium-severity vulnerability in harttle liquidjs, published on 6 Oct 2026. Any signed-in user can exploit it over the network, with no action from the victim.\nExploitation: It is not confirmed as exploited in the wild, but public exploit code for CVE-2026-106120 exists.\n\nAffected packages and fixed versions:\n- liquidjs (npm): affected all versions; fixed in 10.27.2\n- liquidjs (npm): affected all versions; fixed in 10.27.2\n\nTask:\n1. Search the dependency manifests and lockfiles (for example package.json, package-lock.json, requirements.txt, poetry.lock, uv.lock, pom.xml, build.gradle, go.mod, Cargo.lock, Gemfile.lock) and any Dockerfiles for the affected packages, including transitive dependencies.\n2. If an affected version is in use, upgrade it to the fixed version for its release line with the project's package manager, so the lockfile is regenerated. Prefer the smallest upgrade that fixes it.\n3. If there is no fix, or the upgrade would break the build, do not guess: explain the risk and the safest workaround instead.\n4. Run the tests and summarise what changed and why.\n5. If nothing in the project is affected, say so and change nothing.\n\nReference: https://insights.sbomify.com/CVE-2026-106120/ (Markdown: https://insights.sbomify.com/CVE-2026-106120/index.md)","id":"CVE-2026-106120","markdown":"https://insights.sbomify.com/CVE-2026-106120/index.md","name":"CVE-2026-106120","record":{"aliases":["GHSA-fwxr-j5w2-587m","MINI-3fpc-gq7w-qjrx","MINI-v279-7vmj-qx82","MINI-v4jj-r4c9-ph93"],"analysis":{"component_type":"library","fix_type":"upgrade","impacts":["data_read"],"network_reachable":"yes","non_default_config":true,"product_category":"JavaScript template engine","requires_auth":"low_privilege","summary":"An attacker can bypass the ownPropertyOnly security setting in LiquidJS to disclose hidden prototype data via specific array operations.","user_interaction":"not_required","vuln_class":"information_disclosure"},"analysis_generated_by":"qwen3.8-flash-next","assigner":"GitHub_M","cpe":[],"cvss":{"score":6,"severity":"medium","source":"cna","vector":"CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N","version":"4.0"},"cwes":[{"id":"CWE-200","name":"Exposure of Sensitive Information to an Unauthorized Actor"}],"description":"LiquidJS is a Shopify / GitHub Pages compatible template engine in pure JavaScript. Prior to 10.27.2, enabling ownPropertyOnly does not consistently restrict inherited array indices because negative indexing, .first, .last, the first filter, the last filter, join, reverse, slice, compact, and for-loop iteration can read prototype-provided elements outside readJSProperty(). An attacker who can influence prototype state or inherited array-index data and cause templates to render affected operations can disclose values that ownPropertyOnly is expected to hide. Direct positive indexing and ordinary object prototype reads are blocked, but the alternate array paths remain affected. This issue is fixed in 10.27.2.","ecosystems":["npm"],"exploits":{"exploitdb":0,"first_seen":null,"github_poc":0,"max_poc_stars":null,"metasploit":0,"nuclei":0,"refs":[],"tier":"weaponised"},"has_fix":true,"headline":"LiquidJS: ownPropertyOnly bypass for inherited array indices in first/last/join/reverse/slice/compact, `.first`/`.last`, negative index, and for-loop iteration","id":"CVE-2026-106120","indexable":true,"kev":null,"kind":"cve","links":{"ecosystem":"npm","product":null,"products":[],"type":"information_disclosure","year":"2026"},"n_packages":2,"n_references":4,"next":{"headline":"RabbitMQ: JSONReader in the default JSON-RPC mapper never terminates on truncated input, causing DoS","id":"CVE-2026-106121"},"packages":[{"ecosystem":"npm","fixed":["10.27.2"],"introduced":["0"],"last_affected":[],"package":"liquidjs","purl":null,"source":"GHSA-fwxr-j5w2-587m"},{"ecosystem":"npm","fixed":["10.27.2"],"introduced":["0"],"last_affected":[],"package":"liquidjs","purl":"pkg:npm/liquidjs","source":"GHSA-fwxr-j5w2-587m"}],"prev":{"headline":"LangChain: MongoDBChatMessageHistory query injection can allow cross-session access","id":"CVE-2026-106119"},"products":["liquidjs"],"published":"2026-10-06","related":[],"sources":[{"class":"attribution","licence":"CVE Terms of Use (MITRE)","name":"CVE List","prefix":"CVE"},{"class":"attribution","licence":"CC BY 4.0","name":"GitHub Advisory Database","prefix":"GHSA"},{"class":"attribution","licence":"CWE Terms of Use","name":"CWE (MITRE)"},{"class":"attribution","licence":"FIRST CVSS licence","name":"CVSS (FIRST)"}],"ssvc":{"automatable":"yes","exploitation":"poc","technical_impact":"partial"},"state":"PUBLISHED","updated":"2026-10-09","vendors":["harttle"]},"summary":"An attacker can bypass the ownPropertyOnly security setting in LiquidJS to disclose hidden prototype data via specific array operations.","url":"https://insights.sbomify.com/CVE-2026-106120/"}