Giter Site home page Giter Site logo

Comments (1)

david-luna avatar david-luna commented on September 21, 2024

Hi @opravil-jan

we've already checked and discussed internally this vuln, here is the observations we got from the review:

  • The min supported node is v10 for semver@7. Currently the only "fixed" version of semver is v7.5.2.
  • node-semver doesn't have maintenance branches currently for doing updated v6 or v5 releases. There is a user request on the public node-semver pull above about getting fixed releases of semver@5 (and/or presumably semver@6).
  • elastic/apm-agent-nodejs is currently using semver@6 and cannot use semver@7 because it supports back to node v8.6.0.
    The vuln is when untrusted input is given to semver.Range, also indirectly used by semver.satisfies(ver, range).
  • From the PR fixing the issue, it looks like they guard against version strings provided as well, so any new semver.SemVer(verString) usage as well -- which is basically all semver API usage. However, the latest semver@5, semver@6, and semver@7 all have a guard on the max version string being less than 256 chars. My guess is this is why the vuln description is limited to input to new Range.
  • While apm-agent-nodejs' runtime code (everything under "lib/...") uses semver.satisfies() heavily, every usage uses a hardcoded static string for the range argument. I.e. there is no untrusted user input involved.

Our conclusion was: apm-agent-nodejs.git (and the apm-nodejs-http-client.git it uses) are not affected by this issue. Also note that we expect to drop support for older node versions such that we can upgrade to the latest semver@7.

It looks like very recently (3 days ago) they started the a backport to v6. If is finally done we will upgrade to include the fix although the agent is not affected.

Cheers

from apm-nodejs-http-client.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.