GHSA-wmw4-mw6x-6vfm
ReactPress has SQL injection via dynamic column names in TypeORM query builders
Packages
| Ecosystem | Package | Affected | Fixed in |
|---|---|---|---|
| npm | @fecommunity/reactpress | < 3.7.0 | 3.7.0 |
Details
As written in the advisory (Markdown source, shown as plain text).
## Summary
ReactPress API list endpoints build TypeORM `QueryBuilder` conditions using
unsanitized HTTP query parameter *names* as SQL column identifiers
(e.g. `` `article.${key}` ``). TypeORM parameterizes values but not column
names, allowing unauthenticated attackers to inject SQL through crafted
query string keys.
## Impact
An unauthenticated remote attacker can perform blind SQL injection against
the application database, potentially exfiltrating sensitive data (users,
settings, API keys, article content, etc.).
## Affected endpoints (unauthenticated GET)
- `GET /api/article`
- `GET /api/comment`
- `GET /api/file`
- `GET /api/page`
- `GET /api/Knowledge`
## Affected code
Vulnerable pattern in `findAll()` methods, including but not limited to:
- `server/src/modules/article/article.service.ts`
- `server/src/modules/comment/comment.service.ts`
- `server/src/modules/file/file.service.ts`
- `server/src/modules/page/page.service.ts`
- `server/src/modules/knowledge/knowledge.service.ts`
## Remediation
- Whitelist allowed filter column names before interpolating into SQL.
- Upgrade to `@fecommunity/reactpress` >= 3.7.0.
## Credit
Reported by lsr365400.
References
External links from the advisory. They lead to third-party sites.
- https://github.com/fecommunity/reactpress/security/advisories/GHSA-wmw4-mw6x-6vfm
- https://nvd.nist.gov/vuln/detail/CVE-2026-61685
- https://github.com/fecommunity/reactpress/commit/78ecb70af1c021455c05fdcbe137212c70e310d6
- https://github.com/fecommunity/reactpress
- https://github.com/fecommunity/reactpress/releases/tag/v3.7.0