MemberJunction / MemberJunction/MJ

Security: update the vulnerable xlsx dependency

Open Beginner friendly
#4,016 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
TSQL
Stars
29
Forks
6
Avg merge
1d 8h
Merged PRs (30d)
308

Description

## Current evidence

The current default branch still declares `xlsx`:

- `packages/MJExplorer/package.json`: `dependencies.xlsx = ^0.18.5`

GitHub's current dependency data resolves the affected release/range as `0.18.5`, `^0.18.5`.
These releases are covered by two published high-severity advisories:

- [GHSA-4r6h-8v6p-xvw6](https://github.com/advisories/GHSA-4r6h-8v6p-xvw6) - prototype pollution
- [GHSA-5pgg-2g8v-p4x9](https://github.com/advisories/GHSA-5pgg-2g8v-p4x9) - regular expression denial of service

## Remediation paths

The official SheetJS distribution currently recommends the patched `0.20.3`
tarball: [SheetJS Node installation](https://docs.sheetjs.com/docs/getting-started/installation/nodejs/).

For projects that prefer an npm-registry dependency, the module name and imports
can be preserved with this alias:

```json
"xlsx": "npm:@stackline/xlsx@^1.0.6"
```

The current CI/version files use Node 24. `@stackline/xlsx@1.0.6` requires Node 20 or newer and has no
runtime dependencies, so that option should only be used if the project's Node
support contract permits it. Existing imports from `xlsx` remain unchanged.

Disclosure: I maintain `@stackline/xlsx`, an independent Apache-2.0 SheetJS
fork. I am mentioning both the official SheetJS remediation and our npm option
so the project can choose the path that best matches its release policy.

I can prepare a focused, tested pull request if the maintainers would find that
useful.

Contributor guide

Open the contributing guide

Research direction

Start with packages/MJExplorer/package.json and inspect the current Node 24 CI/version files before choosing between the official SheetJS tarball and the npm alias. Confirm the selected option fits the project's Node support contract, then verify that the vulnerable xlsx range is removed and the existing package usage still works.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript, node.js
Domain
security
Issue type
Bug
Difficulty
2/5
Estimated time
1-3 hours
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
68/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.