fix(security): resolve dependency alerts - #115
Merged
Merged
Conversation
Co-authored-by: kade <kxzk@users.noreply.github.com>
kxzk
marked this pull request as ready for review
August 20, 2026 21:07
4 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
TL;DRPatch the open langfuse-rb security alerts. Raise runtime dependency floors so gem consumers cannot select vulnerable versions.
WhyOpen alerts affect Faraday, concurrent-ruby, and json. A lockfile-only bump does not protect downstream gem consumers. The gemspec must also exclude the vulnerable versions.
Summary
This gem now rejects known-vulnerable Faraday, concurrent-ruby, and json versions at the gemspec level. Consumers can no longer resolve a vulnerable runtime version. The fix updates the gemspec and the lockfile together.
>= 2.14.3, < 3. This excludes CVE-2026-33637 and CVE-2026-54297. Faraday 1.x support is dropped. Faraday 2.x needs Ruby >= 3.0. The gem keeps Ruby >= 3.2.0. So the tradeoff is safe.>= 1.3.7, < 2.0. This excludes CVE-2026-54904, CVE-2026-54905, and CVE-2026-54906.~> 2.19, >= 2.19.9. json is used directly at runtime (api_client,read_api,score_client) but was constrained only through Faraday. This excludes CVE-2026-54696.faraday 2.14.3,concurrent-ruby 1.3.8,json 2.21.2.bundler-auditthen reports no vulnerabilities.http://URL. It now useshttps://. The test calls onlyencode. It sends no request. No network behavior is added.Change diagram
graph TD accTitle: Patched dependency constraints accDescr: The SDK moves from vulnerable locked dependencies to patched runtime constraints. subgraph Before["Before (vulnerable)"] B1["faraday 2.14.1"] B2["concurrent-ruby 1.3.6"] B3["json 2.19.3 (transitive only)"] end subgraph After["After (patched and constrained)"] A1["faraday >= 2.14.3, < 3"] A2["concurrent-ruby >= 1.3.7, < 2.0"] A3["json ~> 2.19, >= 2.19.9 (explicit runtime dep)"] end B1 -->|"CVE-2026-33637 / 54297"| A1 B2 -->|"CVE-2026-54904 / 54905 / 54906"| A2 B3 -->|"CVE-2026-54696"| A3diff-lcs multi-license — evidence and decision.
diff-lcs is a test-only dependency. It arrives through
rspec-expectationsandrspec-mocks. The gemspecfileslist ships onlylib/,README,LICENSE, andCHANGELOG. So the built gem never distributes diff-lcs. Installed metadata shows a license choice:["MIT", "Artistic-1.0-Perl", "GPL-2.0-or-later"]. MIT is available. No code change removes this alert. RSpec requires diff-lcs, and every diff-lcs version uses the same tri-license. This repository has no license-policy scanner config, so there is no code-based place to record an election. Remaining policy decision: a maintainer must elect MIT for diff-lcs. Evidence for that election: the dependency is test-only, it is not distributed in the gem artifact, and MIT is one of the offered licenses.Verification
Observed results on this branch (Ruby 3.2.9, local):
bundle exec rspec: 1636 examples, 0 failures.bundle exec rubocop: 108 files, no offenses.git diff --check: clean.bundle-audit check: no vulnerabilities found (ruby-advisory-db updated 2026-08-19).gem build: success with no warnings. Runtime metadata showsfaraday >= 2.14.3, < 3,json ~> 2.19, >= 2.19.9, andconcurrent-ruby >= 1.3.7, < 2.0.bundle install --frozen: succeeds. The lockfile round-trips.Unvalidated boundaries:
langfuseagent skill referenced inAGENTS.mdis not installed in this environment. No Langfuse credentials are set. The SimplePractice staging Langfuse host times out from this runner. So instance-specific validation is blocked. This step is not claimed as passed.bundler-auditagainst ruby-advisory-db.ChecklistCloses #