{"schemaVersion":3,"id":"CVE-2026-48122","aliases":["UBUNTU-CVE-2026-48122"],"status":"published","duplicateOf":null,"title":null,"description":"Ruby LSP is an implementation of the language server protocol for Ruby. Several workspace-level settings in the Ruby LSP VS Code extension prior to version 0.10.4 could override the path to the Ruby executable, the version manager executables, or the Bundler `Gemfile` used at startup. A malicious repository containing a `.vscode/settings.json` could set these values to attacker-controlled targets. Opening and trusting the repository would then execute code with the privileges of the developer. The Ruby LSP gem and clients of the language server in other editors are not affected. Version 0.10.4 of the Ruby LSP VS Code extension fixes the issue.","dates":{"published":"2026-08-07T22:40:23.811Z","modified":"2026-08-12T22:15:09.032Z","reserved":null,"kevAdded":[],"kevDue":[]},"cvss":{"headline":{"score":5.4,"severity":"medium","version":"4.0","versionLabel":"v4.0","source":"CVE.org","vector":"CVSS:4.0/AV:L/AC:L/AT:P/PR:L/UI:A/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N","computed":false,"selection":"backend-summary"},"metrics":[{"version":"4.0","versionLabel":"v4.0","source":"CVE.org","score":5.4,"severity":"medium","vector":"CVSS:4.0/AV:L/AC:L/AT:P/PR:L/UI:A/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N","exploitability":null,"impact":null,"computed":false},{"version":"4.0","versionLabel":"v4.0","source":"NVD","score":5.4,"severity":"medium","vector":"CVSS:4.0/AV:L/AC:L/AT:P/PR:L/UI:A/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X","exploitability":null,"impact":null,"computed":false},{"version":"4.0","versionLabel":"v4.0","source":"OSV · Ubuntu","score":5.4,"severity":"medium","vector":"CVSS:4.0/AV:L/AC:L/AT:P/PR:L/UI:A/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N","exploitability":null,"impact":null,"computed":true}]},"epss":{"probability":0.0018,"percentile":0.07102,"severity":"low","asOf":"2026-10-20T00:00:00.000Z","change":{"pp":0.05499999999999999,"baselineDate":"2026-09-20T00:00:00.000Z","baselineScore":0.00125},"history":[{"date":"2026-09-14T00:00:00.000Z","score":0.00125,"percentile":null},{"date":"2026-09-15T00:00:00.000Z","score":0.00125,"percentile":null},{"date":"2026-09-16T00:00:00.000Z","score":0.00125,"percentile":null},{"date":"2026-09-17T00:00:00.000Z","score":0.00125,"percentile":null},{"date":"2026-09-18T00:00:00.000Z","score":0.00125,"percentile":null},{"date":"2026-09-19T00:00:00.000Z","score":0.00125,"percentile":null},{"date":"2026-09-20T00:00:00.000Z","score":0.00125,"percentile":null},{"date":"2026-09-21T00:00:00.000Z","score":0.00125,"percentile":null},{"date":"2026-09-22T00:00:00.000Z","score":0.00125,"percentile":null},{"date":"2026-09-23T00:00:00.000Z","score":0.00125,"percentile":null},{"date":"2026-09-24T00:00:00.000Z","score":0.0018,"percentile":null},{"date":"2026-09-25T00:00:00.000Z","score":0.0018,"percentile":null},{"date":"2026-09-26T00:00:00.000Z","score":0.0018,"percentile":null},{"date":"2026-09-27T00:00:00.000Z","score":0.0018,"percentile":null},{"date":"2026-09-28T00:00:00.000Z","score":0.0018,"percentile":null},{"date":"2026-09-29T00:00:00.000Z","score":0.0018,"percentile":null},{"date":"2026-09-30T00:00:00.000Z","score":0.0018,"percentile":null},{"date":"2026-10-01T00:00:00.000Z","score":0.0018,"percentile":null},{"date":"2026-10-02T00:00:00.000Z","score":0.0018,"percentile":null},{"date":"2026-10-03T00:00:00.000Z","score":0.0018,"percentile":null},{"date":"2026-10-04T00:00:00.000Z","score":0.0018,"percentile":null},{"date":"2026-10-05T00:00:00.000Z","score":0.0018,"percentile":null},{"date":"2026-10-06T00:00:00.000Z","score":0.0018,"percentile":null},{"date":"2026-10-07T00:00:00.000Z","score":0.0018,"percentile":null},{"date":"2026-10-08T00:00:00.000Z","score":0.0018,"percentile":null},{"date":"2026-10-09T00:00:00.000Z","score":0.0018,"percentile":null},{"date":"2026-10-10T00:00:00.000Z","score":0.0018,"percentile":null},{"date":"2026-10-11T00:00:00.000Z","score":0.0018,"percentile":null},{"date":"2026-10-12T00:00:00.000Z","score":0.0018,"percentile":null},{"date":"2026-10-13T00:00:00.000Z","score":0.0018,"percentile":null},{"date":"2026-10-14T00:00:00.000Z","score":0.0018,"percentile":null},{"date":"2026-10-15T00:00:00.000Z","score":0.0018,"percentile":null},{"date":"2026-10-16T00:00:00.000Z","score":0.0018,"percentile":null},{"date":"2026-10-17T00:00:00.000Z","score":0.0018,"percentile":null},{"date":"2026-10-18T00:00:00.000Z","score":0.0018,"percentile":null},{"date":"2026-10-19T00:00:00.000Z","score":0.0018,"percentile":null},{"date":"2026-10-20T00:00:00.000Z","score":0.0018,"percentile":0.07102}],"last30":[{"date":"2026-09-20T00:00:00.000Z","score":0.00125,"percentile":null},{"date":"2026-09-21T00:00:00.000Z","score":0.00125,"percentile":null},{"date":"2026-09-22T00:00:00.000Z","score":0.00125,"percentile":null},{"date":"2026-09-23T00:00:00.000Z","score":0.00125,"percentile":null},{"date":"2026-09-24T00:00:00.000Z","score":0.0018,"percentile":null},{"date":"2026-09-25T00:00:00.000Z","score":0.0018,"percentile":null},{"date":"2026-09-26T00:00:00.000Z","score":0.0018,"percentile":null},{"date":"2026-09-27T00:00:00.000Z","score":0.0018,"percentile":null},{"date":"2026-09-28T00:00:00.000Z","score":0.0018,"percentile":null},{"date":"2026-09-29T00:00:00.000Z","score":0.0018,"percentile":null},{"date":"2026-09-30T00:00:00.000Z","score":0.0018,"percentile":null},{"date":"2026-10-01T00:00:00.000Z","score":0.0018,"percentile":null},{"date":"2026-10-02T00:00:00.000Z","score":0.0018,"percentile":null},{"date":"2026-10-03T00:00:00.000Z","score":0.0018,"percentile":null},{"date":"2026-10-04T00:00:00.000Z","score":0.0018,"percentile":null},{"date":"2026-10-05T00:00:00.000Z","score":0.0018,"percentile":null},{"date":"2026-10-06T00:00:00.000Z","score":0.0018,"percentile":null},{"date":"2026-10-07T00:00:00.000Z","score":0.0018,"percentile":null},{"date":"2026-10-08T00:00:00.000Z","score":0.0018,"percentile":null},{"date":"2026-10-09T00:00:00.000Z","score":0.0018,"percentile":null},{"date":"2026-10-10T00:00:00.000Z","score":0.0018,"percentile":null},{"date":"2026-10-11T00:00:00.000Z","score":0.0018,"percentile":null},{"date":"2026-10-12T00:00:00.000Z","score":0.0018,"percentile":null},{"date":"2026-10-13T00:00:00.000Z","score":0.0018,"percentile":null},{"date":"2026-10-14T00:00:00.000Z","score":0.0018,"percentile":null},{"date":"2026-10-15T00:00:00.000Z","score":0.0018,"percentile":null},{"date":"2026-10-16T00:00:00.000Z","score":0.0018,"percentile":null},{"date":"2026-10-17T00:00:00.000Z","score":0.0018,"percentile":null},{"date":"2026-10-18T00:00:00.000Z","score":0.0018,"percentile":null},{"date":"2026-10-19T00:00:00.000Z","score":0.0018,"percentile":null},{"date":"2026-10-20T00:00:00.000Z","score":0.0018,"percentile":0.07102}]},"kev":{"state":"not-listed","entries":[],"listedCount":0,"totalCatalogs":3,"catalogs":[{"source":"cisa","label":"CISA","listed":false,"entry":null},{"source":"enisa","label":"ENISA","listed":false,"entry":null},{"source":"circl","label":"CIRCL","listed":false,"entry":null}]},"ransomware":{"state":"none-recorded","sources":[]},"exploits":[],"exploitCount":0,"weaknesses":[{"id":"CWE-78","name":"Improper Neutralization of Special Elements used in an OS Command ('OS Command Injection')","description":"The product constructs all or part of an OS command using externally-influenced input from an upstream component, but it does not neutralize or incorrectly neutralizes special elements that could modify the intended OS command when it is sent to a downstream component.","type":"weakness","status":"Stable","abstraction":"Base","likelihoodOfExploit":"High","url":"https://cwe.mitre.org/data/definitions/78.html"}],"affected":[{"vendor":"ubuntu","product":"ruby-ruby-lsp","name":"ruby-ruby-lsp","label":"ruby-ruby-lsp","ecosystem":"Ubuntu","cpePart":null,"purl":"pkg:deb/ubuntu/ruby-ruby-lsp","purlType":"deb","versions":[{"text":"All versions","noFixRecorded":true,"fixedIn":null}],"versionsText":"All versions (No fix recorded)","eol":null,"hubHref":null},{"vendor":"shopify","product":"ruby-lsp","name":"ruby-lsp","label":"ruby-lsp","ecosystem":null,"cpePart":"a","purl":null,"purlType":null,"versions":[{"text":"< 0.10.4","noFixRecorded":false,"fixedIn":null}],"versionsText":"< 0.10.4","eol":null,"hubHref":"/vendor/shopify/ruby-lsp"}],"affectedCount":2,"eol":{"hasEol":false,"count":0},"references":[{"url":"https://github.com/Shopify/ruby-lsp/security/advisories/GHSA-2x7g-8mp4-572w","label":"github.com/Shopify/ruby-lsp/security/advisories/GHSA-2x7g-8mp4-572w","hostname":"github.com","tags":["X Refsource CONFIRM","REPORT"]},{"url":"https://ubuntu.com/security/CVE-2026-48122","label":"ubuntu.com/security/CVE-2026-48122","hostname":"ubuntu.com","tags":["REPORT"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-48122","label":"www.cve.org/CVERecord?id=CVE-2026-48122","hostname":"www.cve.org","tags":["REPORT"]}],"lineage":{"upstream":[],"downstream":[],"duplicates":[],"related":[]},"timeline":[{"kind":"published","date":"2026-08-07T22:40:23.811Z","label":"Published","detail":"Vulnerability first disclosed.","source":null},{"kind":"modified","date":"2026-08-12T22:15:09.032Z","label":"Last modified","detail":"Vulnerability information updated.","source":null}],"risk":{"score":22,"level":"low","profile":"Default","thresholds":{"critical":75,"high":50,"medium":25,"low":10}},"meta":{"dataAsOf":"2026-10-20T23:49:56.551Z","stale":false,"partial":false}}