emqx / emqx/neuron

CVE-2024-10964: v2.8 plugin_handle.c still uses unbounded strcpy() — backport request

Open
#2,743 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
C
Stars
1.4k
Forks
311
Avg merge
1d 2h
Merged PRs (30d)
10

Description

Hello,

Follow-up scan after looking at `v2.9` — the same CVE-2024-10964 fix is also missing on the older `v2.8` branch.

**Upstream fix:** [`3e3a583d`](https://github.com/emqx/neuron/commit/3e3a583d7254) — `plugin:buffer overflow` (replaces `strcpy()` with `strncpy(..., NEU_PLUGIN_LIBRARY_LEN)`).

**State on `v2.8` (HEAD `6c58bfe2128a`):**

| function | line on v2.8 |
|---|---|
| `handle_add_plugin` | `strcpy(cmd.library, req->library);` |
| `handle_update_plugin`| `strcpy(cmd.library, req->library);` |

Both still call the unbounded `strcpy()` against attacker-controllable `req->library`, so the original buffer-overflow condition is reachable.

`compare v2.8...main` reports `diverged, ahead=698, behind=148`, so the branch is actively maintained.

The minimum diff is identical to the upstream `+2/-2` change in `plugins/restful/plugin_handle.c`; the master-only `otel_trace_type` field is not on `v2.8` and is not needed.

Happy to send the cherry-pick as a PR if that helps. Thanks for maintaining `v2.x`!

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.