VDB
Sign up
HIGH7.5

GHSA-wmw4-mw6x-6vfm

ReactPress has SQL injection via dynamic column names in TypeORM query builders

Quick fix

GHSA-wmw4-mw6x-6vfm — @fecommunity/reactpress: upgrade to the fixed version with the command below.

npm install @fecommunity/reactpress@3.7.0

Details

## 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.

Are you affected?

Enter the version of the package you're using.

Affected packages

npm/@fecommunity/reactpress
Introduced in: 0Fixed in: 3.7.0
Fixnpm install @fecommunity/reactpress@3.7.0

References