Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: isaacs/node-tar
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 4aaffc8
Choose a base ref
...
head repository: isaacs/node-tar
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: bef7b1e
Choose a head ref
  • 16 commits
  • 33 files changed
  • 2 contributors

Commits on May 12, 2023

  1. move mutateFS reset out of t.teardown

    Not sure why this was failing on my system, but this fixes it.
    isaacs committed May 12, 2023
    Configuration menu
    Copy the full SHA
    8cd8139 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    24efc74 View commit details
    Browse the repository at this point in the history

Commits on May 17, 2023

  1. Normalize unicode internally using NFD

    Previously, the path reservation system, which defends against unicode
    path name collisions (the subject of a handful of past CVE issues), was
    using NFKD normalization internally to determine of two paths would be
    likely to reference the same file on disk.
    
    This has the weird effect of normalizing things like `℀` into simple
    decomposed character strings, for example `a/c`. These can contain
    slashes and double-dot sections, which means that the path reservations
    may end up reserving more (or different) paths than intended.
    
    Thankfully, tar was already *extracting* properly, even if the path
    reservations collided, and these collisions resulted in tar being *more*
    aggressive than it should be in restricting parallel extraction, rather
    than less. That's a good direction to err in, for security, but also,
    made tar less efficient than it could be in some edge cases.
    
    Using NFD normalization, unicode characters are not decomposed in
    compatibility mode, but still result in matching path reservation keys
    as intended.
    
    This does not cause any change in observed behavior, other than allowing
    some files to be extracted in parallel where it is provably safe to do
    so.
    
    Credit: discovered by @Sim4n6. This did not result in a juicy security
    vulnerability, but it sure looked like one at first. They were extremely
    patient, thorough, and persistent in trying to pin this down to a POC
    and CVE. There is very little reward or visibility when a security
    researcher finds a bug that doesn't result in a security disclosure, but
    the attempt often results in improvements to the project.
    isaacs committed May 17, 2023
    Configuration menu
    Copy the full SHA
    4501bdb View commit details
    Browse the repository at this point in the history
  2. 6.1.15

    isaacs committed May 17, 2023
    Configuration menu
    Copy the full SHA
    3302cf7 View commit details
    Browse the repository at this point in the history

Commits on May 18, 2023

  1. silence dependabot

    isaacs committed May 18, 2023
    Configuration menu
    Copy the full SHA
    8c5af15 View commit details
    Browse the repository at this point in the history

Commits on Jun 15, 2023

  1. Configuration menu
    Copy the full SHA
    c9fc57c View commit details
    Browse the repository at this point in the history

Commits on Jun 20, 2023

  1. chore: lint fixes

    JamieMagee committed Jun 20, 2023
    Configuration menu
    Copy the full SHA
    eeba222 View commit details
    Browse the repository at this point in the history

Commits on Sep 5, 2023

  1. refactor: dry and other pr comments

    PR-URL: #391
    Credit: @JamieMagee
    Close: #391
    Reviewed-by: @isaacs
    JamieMagee authored and isaacs committed Sep 5, 2023
    Configuration menu
    Copy the full SHA
    336fa8f View commit details
    Browse the repository at this point in the history
  2. file inference improvements for .tbr and .tgz

    When unpacking, only infer brotli compression from the filename if the
    first 512 bytes are an invalid tar header (or the stream is less than
    512 bytes)
    
    While Brotli doesn't give us magic header bytes like gzip, we can be
    reasonably sure that a .tbr file starting with 512 bytes of valid tar
    data is almost certainly not a brotli compressed archive.
    
    And a .tbr file starting with the magic gzip bytes is almost certainly a
    gzip archive, and not brotli, despite what the filename says.
    
    In all cases, if explicit boolean or object values appear in the options
    for either gzip or brotli, we respect that, and ignore the filename.
    isaacs committed Sep 5, 2023
    Configuration menu
    Copy the full SHA
    db6f539 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    689928a View commit details
    Browse the repository at this point in the history
  4. get rid of npm lint stuff

    Will replace with prettier at some point, but for now, whatever.
    isaacs committed Sep 5, 2023
    Configuration menu
    Copy the full SHA
    e483220 View commit details
    Browse the repository at this point in the history
  5. changelog 6.2

    isaacs committed Sep 5, 2023
    Configuration menu
    Copy the full SHA
    fe1ef5e View commit details
    Browse the repository at this point in the history
  6. 6.2.0

    isaacs committed Sep 5, 2023
    Configuration menu
    Copy the full SHA
    5bc9d40 View commit details
    Browse the repository at this point in the history

Commits on Feb 12, 2024

  1. Configuration menu
    Copy the full SHA
    fe7ebfd View commit details
    Browse the repository at this point in the history

Commits on Mar 21, 2024

  1. prevent extraction in excessively deep subfolders

    This sets the limit at 1024 subfolders nesting by default, but that can
    be dropped down, or set to Infinity to remove the limitation.
    isaacs committed Mar 21, 2024
    Configuration menu
    Copy the full SHA
    fe8cd57 View commit details
    Browse the repository at this point in the history
  2. 6.2.1

    isaacs committed Mar 21, 2024
    Configuration menu
    Copy the full SHA
    bef7b1e View commit details
    Browse the repository at this point in the history
Loading