CVE-2022-50650

HIGHPre-NVD 7.87.8
EchelonGraph scoreMEDIUM confidence

“—” beside the score: it is equal to the CVSS score beside it.

Score 7.8 from GitHub Security Advisory (severity: HIGH) published 2025-12-09. A secondary CVSS source baseline 7.8; sources differ by 0.0.

Triggered by: GitHub Security Advisory CVSS
Sources: EPSS, GitHub Security Advisory, a secondary CVSS source
Trending — 3 sources updated this week

Also known asEUVD-2022-55706 (ENISA EUVD) · GHSA-f9w8-ggmf-6h55 (GitHub Security Advisories)Source: ENISA EUVD

7.8EG
EchelonGraph verdictPlan a fixRemediate within your standard update timelines (the SSVC decision on this page).
  • High severity, but no confirmed exploitation yet
CISA-KEV: Not listedEPSS PROB: 0.2%CVSS: 7.8Exploit: None knownExposed services: Not assessed

A fix is available — apply it.

In the Linux kernel, the following vulnerability has been resolved:

bpf: Fix reference state management for synchronous callbacks

Currently, verifier verifies callback functions (sync and async) as if they will be executed once, (i.e. it explores execution state as if the function was being called once). The next insn to explore is set to start of subprog and the exit from nested frame is handled using curframe > 0 and prepare_func_exit. In case of async callback it uses a customized variant of push_stack simulating a kind of branch to set up custom state and execution context for the async callback.

While this approach is simple and works when callback really will be executed only once, it is unsafe for all of our current helpers which are for_each style, i.e. they execute the callback multiple times.

A callback releasing acquired references of the caller may do so multiple times, but currently verifier sees it as one call inside the frame, which then returns to caller. Hence, it thinks it released some reference that the cb e.g. got access through callback_ctx (register filled inside cb from spilled typed register on stack).

Similarly, it may see that an acquire call is unpaired inside the callback, so the caller will copy the reference state of callback and then will have to release the register with new ref_obj_ids. But again, the callback may execute multiple times, but the verifier will only account for acquired references for a single symbolic execution of the callback, which will cause leaks.

Note that for async callback case, things are different. While currently we have bpf_timer_set_callback which only executes it once, even for multiple executions it would be safe, as reference state is NULL and check_reference_leak would force program to release state before BPF_EXIT. The state is also unaffected by analysis for the caller frame. Hence async callback is safe.

Since we want the reference state to be accessible, e.g. for pointers loaded from stack through callback_ctx's PTR_TO_STACK, we still have to copy caller's reference_state to callback's bpf_func_state, but we enforce that whatever references it adds to that reference_state has been released before it hits BPF_EXIT. This requires introducing a new callback_ref member in the reference state to distinguish between caller vs callee references. Hence, check_reference_leak now errors out if it sees we are in callback_fn and we have not released callback_ref refs. Since there can be multiple nested callbacks, like frame 0 -> cb1 -> cb2 etc. we need to also distinguish between whether this particular ref belongs to this callback frame or parent, and only error for our own, so we store state->frameno (which is always non-zero for callbacks).

In short, callbacks can read parent reference_state, but cannot mutate it, to be able to use pointers acquired by the caller. They must only undo their changes (by releasing their own acquired_refs before BPF_EXIT) on top of caller reference_state before returning (at which point the caller and callback state will match anyway, so no need to copy it back to caller).

CVSS v3
7.8
EG Score
7.8HIGHmedium confidence
EG Risk
35
EG Risk 35/100

EG Risk is EchelonGraph's 0–100 priority score. It fuses impact severity (EG Severity, the CVSS base score, never the KEV-floored or EPSS-lifted EG Score) with real-world exploitation and automatability, under weights EchelonGraph set by hand, so you can rank equal-severity CVEs and fix the most dangerous first. Higher = act sooner.

How it’s computed (value × EchelonGraph’s weight)
Severity78% × 45%
Impact severity (EG Severity): CVSS 7.8 of 10. Never the KEV-floored or EPSS-lifted EG Score.
Exploitation0.2% × 40%
FIRST EPSS: the 30-day exploitation probability when EchelonGraph scored this CVE.
Automatability0% × 15%
CISA's SSVC Automatable value: no (Vulnrichment).
SSVC (CISA's decision table, applied by EchelonGraph): Track at low or medium mission impact; Track* at high (mission-essential systems).
Exploitation none (CISA Vulnrichment) · Automatable no (CISA Vulnrichment) · Technical impact total (CISA Vulnrichment). All three are CISA's SSVC values (Vulnrichment). EchelonGraph applied CISA's decision table to them; CISA publishes SSVC inputs and the table, not a decision for each CVE.
Action: A fix is available. Apply it within your standard update timelines.
EPSS PROB
0.2%
EPSS %ILE
5th
KEV
Not listed

What the EG score is made of (scorer v4.0: the three questions the 0–10 score mixes, published apart · methodology)

The EG score (7.8): severity, escalated by confirmed exploitation. This CVE's 7.8 is its impact severity (EG Severity), not escalated.

EG Severity
7.8 HIGHCVSS-B, impact only: no KEV listing, EPSS or EG-KEV tier raises it.GitHub Security Advisory CVSS
EG Likelihood
0.2% within 30 daysSource: FIRST EPSS (model v2026.06.15, score date 2026-10-30). FIRST's exploitation probability, not an EchelonGraph model.
Confirmed exploitation
None on record (CISA KEV, EG-KEV Tier 1)Reported apart from the likelihood: an observed fact, not a probability.
EG Priority
SSVC Track at medium mission impactTrack at low or medium mission impact; Track* at high (mission-essential systems).CISA BOD 26-04: 14 days if the affected system is publicly exposed; Fix on system upgrade if it is not.Each input and its source, and whom BOD 26-04 binds: the SSVC and BOD 26-04 blocks below.

SSVC (CISA's decision table, applied by EchelonGraph)Track at low or medium mission impact; Track* at high (mission-essential systems).

A fix is available. Apply it within your standard update timelines.

Exploitation none (CISA Vulnrichment) · Automatable no (CISA Vulnrichment) · Technical impact total (CISA Vulnrichment). All three are CISA's SSVC values (Vulnrichment). EchelonGraph applied CISA's decision table to them; CISA publishes SSVC inputs and the table, not a decision for each CVE. Mission impact is CISA's Mission & Well-being decision point, and only you can judge it. CISA's table makes it high when Mission Prevalence is Essential — the vulnerable component "directly provides capabilities that constitute at least one MEF for at least one entity" (MEF: mission essential function) — or when Public Well-Being Impact is Irreversible: "multiple fatalities are likely", the cyber-physical system "is likely lost or destroyed", "extreme or serious externalities" are imposed on other parties, or social systems such as elections or the financial grid "are destabilized and potentially collapse". CISA's decision table

BOD 26-04 (CISA's remediation timeline, Table 1)14 days if the affected system is publicly exposed; Fix on system upgrade if it is not.

The score's inputs: In CISA KEV no (CISA's KEV catalog) · Automatable no (CISA Vulnrichment) · Technical impact total (CISA Vulnrichment). Whether your system is publicly exposed is yours to answer. BOD 26-04 binds US Federal Civilian Executive Branch agencies; for anyone else it is CISA's published timeline, a reference rather than an obligation. The directive · how EchelonGraph applies it

Published

December 9, 2025

Last Modified

October 15, 2026

Advisory Details (4)

Auto-updated Aug 4, 2026
Patch available.
Web page

bpf: Fix reference state management for synchronous callbacks - kernel/git/stable/linux.git - Linux kernel stable tree

https://git.kernel.org/stable/c/9d9d00ac29d0ef7ce426964de46fa6b380357d0a
Web page

bpf: Fix reference state management for synchronous callbacks - kernel/git/stable/linux.git - Linux kernel stable tree

https://git.kernel.org/stable/c/aed931fd3b6e28f19cc140ff90aa5046ee2aa4e1
Web page

bpf: Fix reference state management for synchronous callbacks - kernel/git/stable/linux.git - Linux kernel stable tree

https://git.kernel.org/stable/c/caa176c0953cdfd5ce500fb517ce1ea924a8bc4c

Vendor Advisories for CVE-2022-50650(2)

These vendors published their own advisory mentioning this CVE — often with vendor-specific remediation steps + affected product lists not in NVD.

Patch Availability(2)

Vendor / EcosystemFix (by version range) / PatchReleasedSource
redhatkernel-0:5.14.0-362.8.1.el9_32023-11-07redhat
linuxKernel @ 5.15.75 (fixes >=5.13.0)—osv

Patches are aggregated from vendor advisories (Red Hat, Microsoft, Cisco, GitHub) and package ecosystems (OSV, GHSA). Multiple rows for the same upstream release have been deduplicated.

Affected Packages

(3 across 3 ecosystems)
Debian:12(1)
PackageVulnerable rangeFix by version rangeDependents
linux—
  • every version up to 6.0.3-1: fixed in 6.0.3-1
—
Debian:13(1)
PackageVulnerable rangeFix by version rangeDependents
linux—
  • every version up to 6.0.3-1: fixed in 6.0.3-1
—
Debian:14(1)
PackageVulnerable rangeFix by version rangeDependents
linux—
  • every version up to 6.0.3-1: fixed in 6.0.3-1
—

Data Freshness Timeline

(refreshed 9× in last 7d / 39× in last 30d)

Each row is a time one of our pipelines fetched, updated or re-scored this CVE. For example, "NVD update" means NVD published or revised its analysis for this CVE; "MITRE cvelistV5" means we ingested or refreshed it from the CNA feed. An arrow marks a change the record states ("CVSS v3 → 9.1"); EPSS and GHSA rows show the values recorded at that time, not what changed (EPSS values are rounded; hover one for the exact figures). Most recent first.

Showing the most recent 99 of 242 refreshes on record for this CVE.

A repeat, a row identical to one the same pipeline wrote less than 10 seconds earlier, is not a separate refresh and is not counted. 1 repeat row among the latest 100 is merged into the row it repeats. The 143 oldest rows on record are not shown and were not checked, so the counts can still include repeats.

  1. 2026-11-01 16:30 UTCEPSS rescoreEPSS 0.2% · 5th percentile
  2. 2026-10-31 16:29 UTCEPSS rescoreEPSS 0.2% · 5th percentile
  3. 2026-10-30 19:44 UTCEG score recompute
  4. 2026-10-30 19:44 UTCGHSA enrichmentGHSA-f9w8-ggmf-6h55 · GitHub severity HIGH · GitHub CVSS 7.8
  5. 2026-10-30 16:31 UTCEPSS rescoreEPSS 0.2% · 5th percentile
  6. 2026-10-29 16:30 UTCEPSS rescoreEPSS 0.2% · 5th percentile
  7. 2026-10-28 16:28 UTCEPSS rescoreEPSS 0.2% · 5th percentile
  8. 2026-10-27 16:28 UTCEPSS rescoreEPSS 0.2% · 5th percentile
  9. 2026-10-26 16:28 UTCEPSS rescoreEPSS 0.2% · 5th percentile
  10. 2026-10-25 17:53 UTCEG score recompute
  11. 2026-10-25 16:29 UTCEPSS rescoreEPSS 0.2% · 5th percentile
  12. 2026-10-24 16:29 UTCEPSS rescoreEPSS 0.2% · 4th percentile
  13. 2026-10-23 16:29 UTCEPSS rescoreEPSS 0.2% · 4th percentile
  14. 2026-10-23 09:10 UTCEG score recompute
  15. 2026-10-23 09:10 UTCGHSA enrichmentGHSA-f9w8-ggmf-6h55 · GitHub severity HIGH · GitHub CVSS 7.8
  16. 2026-10-22 16:30 UTCEPSS rescoreEPSS 0.2% · 4th percentile
  17. 2026-10-21 16:29 UTCEPSS rescoreEPSS 0.2% · 4th percentile
  18. 2026-10-20 16:29 UTCEPSS rescoreEPSS 0.2% · 4th percentile
  19. 2026-10-19 16:28 UTCEPSS rescoreEPSS 0.2% · 4th percentile
  20. 2026-10-18 16:29 UTCEPSS rescoreEPSS 0.2% · 4th percentile
  21. 2026-10-18 08:18 UTCEG score recompute
  22. 2026-10-16 16:35 UTCEPSS rescoreEPSS 0.2% · 4th percentile
  23. 2026-10-15 22:40 UTCEG score recompute
  24. 2026-10-15 22:40 UTCGHSA enrichmentGHSA-f9w8-ggmf-6h55 · GitHub severity HIGH · GitHub CVSS 7.8
  25. 2026-10-15 21:59 UTCEG score recompute
Show 74 more
  1. 2026-10-15 21:58 UTCGHSA enrichmentGHSA-f9w8-ggmf-6h55 · GitHub severity HIGH · GitHub CVSS 7.8
  2. 2026-10-15 16:28 UTCEPSS rescoreEPSS 0.2% · 4th percentile
  3. 2026-10-14 16:29 UTCEPSS rescoreEPSS 0.2% · 4th percentile
  4. 2026-10-13 16:29 UTCEPSS rescoreEPSS 0.2% · 4th percentile
  5. 2026-10-12 18:40 UTCEG score recompute
  6. 2026-10-12 16:30 UTCEPSS rescoreEPSS 0.2% · 4th percentile
  7. 2026-10-11 22:04 UTCEG score recompute
  8. 2026-10-11 13:45 UTCEPSS rescoreEPSS 0.2% · 4th percentile
  9. 2026-10-10 19:57 UTCEPSS rescoreEPSS 0.2% · 4th percentile
  10. 2026-10-09 20:05 UTCEPSS rescoreEPSS 0.2% · 4th percentile
  11. 2026-10-07 23:45 UTCEPSS rescoreEPSS 0.2% · 4th percentile
  12. 2026-10-06 15:14 UTCEPSS rescoreEPSS 0.2% · 4th percentile
  13. 2026-10-05 17:40 UTCEPSS rescoreEPSS 0.2% · 4th percentile
  14. 2026-10-04 23:19 UTCEPSS rescoreEPSS 0.2% · 4th percentile
  15. 2026-10-03 14:23 UTCEPSS rescoreEPSS 0.2% · 4th percentile
  16. 2026-10-01 04:10 UTCOSV refresh
  17. 2026-09-30 16:13 UTCEG score recompute
  18. 2026-09-30 15:01 UTCEPSS rescoreEPSS 0.2% · 4th percentile
  19. 2026-09-27 13:42 UTCEPSS rescoreEPSS 0.2% · 4th percentile
  20. 2026-09-26 15:55 UTCEPSS rescoreEPSS 0.2% · 4th percentile
  21. 2026-09-26 00:22 UTCEPSS rescoreEPSS 0.2% · 4th percentile
  22. 2026-09-24 14:00 UTCEPSS rescoreEPSS 0.2% · 4th percentile
  23. 2026-09-23 13:45 UTCEPSS rescoreEPSS 0.2% · 5th percentile
  24. 2026-09-20 20:13 UTCEPSS rescoreEPSS 0.2% · 5th percentile
  25. 2026-09-16 14:05 UTCEPSS rescoreEPSS 0.2% · 5th percentile
  26. 2026-09-16 05:11 UTCEPSS rescoreEPSS 0.2% · 5th percentile
  27. 2026-09-15 03:07 UTCEPSS rescoreEPSS 0.2% · 5th percentile
  28. 2026-09-13 16:44 UTCEPSS rescoreEPSS 0.2% · 5th percentile
  29. 2026-09-12 06:40 UTCOSV refresh
  30. 2026-09-11 14:50 UTCEPSS rescoreEPSS 0.2% · 5th percentile
  31. 2026-09-11 09:34 UTCEPSS rescoreEPSS 0.2% · 5th percentile
  32. 2026-09-08 21:57 UTCEPSS rescoreEPSS 0.2% · 5th percentile
  33. 2026-09-07 15:59 UTCEPSS rescoreEPSS 0.2% · 5th percentile
  34. 2026-09-06 13:45 UTCEPSS rescoreEPSS 0.2% · 5th percentile
  35. 2026-09-05 15:25 UTCEPSS rescoreEPSS 0.2% · 5th percentile
  36. 2026-09-04 13:57 UTCEPSS rescoreEPSS 0.2% · 5th percentile
  37. 2026-09-04 05:04 UTCEPSS rescoreEPSS 0.2% · 5th percentile
  38. 2026-09-02 14:09 UTCEPSS rescoreEPSS 0.2% · 5th percentile
  39. 2026-09-01 13:51 UTCEPSS rescoreEPSS 0.2% · 5th percentile
  40. 2026-08-30 19:15 UTCEPSS rescoreEPSS 0.2% · 5th percentile
  41. 2026-08-30 01:19 UTCEPSS rescoreEPSS 0.2% · 5th percentile
  42. 2026-08-28 21:38 UTCEPSS rescoreEPSS 0.2% · 5th percentile
  43. 2026-08-27 14:22 UTCEPSS rescoreEPSS 0.2% · 5th percentile
  44. 2026-08-26 14:43 UTCEPSS rescoreEPSS 0.2% · 5th percentile
  45. 2026-08-25 13:46 UTCEPSS rescoreEPSS 0.2% · 5th percentile
  46. 2026-08-24 12:00 UTCOSV refresh
  47. 2026-08-23 00:17 UTCEPSS rescoreEPSS 0.2% · 5th percentile
  48. 2026-08-21 23:46 UTCEPSS rescoreEPSS 0.2% · 5th percentile
  49. 2026-08-20 22:53 UTCEPSS rescoreEPSS 0.2% · 5th percentile
  50. 2026-08-19 17:01 UTCEPSS rescoreEPSS 0.2% · 5th percentile
  51. 2026-08-18 13:45 UTCEPSS rescoreEPSS 0.2% · 5th percentile
  52. 2026-08-17 13:44 UTCEPSS rescoreEPSS 0.2% · 5th percentile
  53. 2026-08-16 14:53 UTCEPSS rescoreEPSS 0.2% · 5th percentile
  54. 2026-08-16 02:12 UTCEPSS rescoreEPSS 0.2% · 5th percentile
  55. 2026-08-15 01:27 UTCEPSS rescoreEPSS 0.2% · 5th percentile
  56. 2026-08-13 21:58 UTCEPSS rescoreEPSS 0.2% · 5th percentile
  57. 2026-08-12 13:48 UTCEPSS rescoreEPSS 0.2% · 5th percentile
  58. 2026-08-09 13:44 UTCEPSS rescoreEPSS 0.2% · 5th percentile
  59. 2026-08-08 16:34 UTCEPSS rescoreEPSS 0.2% · 5th percentile
  60. 2026-08-08 08:06 UTCEG score recompute
  61. 2026-08-08 08:06 UTCGHSA enrichmentGHSA-f9w8-ggmf-6h55 · GitHub severity HIGH · GitHub CVSS 7.8
  62. 2026-08-07 16:24 UTCEPSS rescoreEPSS 0.2% · 5th percentile
  63. 2026-08-06 13:44 UTCEPSS rescoreEPSS 0.2% · 5th percentile
  64. 2026-08-05 19:15 UTCEPSS rescoreEPSS 0.1% · 4th percentile
  65. 2026-08-05 09:19 UTCEG score recompute
  66. 2026-08-05 09:18 UTCGHSA enrichmentGHSA-f9w8-ggmf-6h55 · GitHub severity HIGH · GitHub CVSS 7.8
  67. 2026-08-04 15:07 UTCEPSS rescoreEPSS 0.1% · 4th percentile
  68. 2026-08-04 10:53 UTCEG score recompute
  69. 2026-08-04 10:53 UTCGHSA enrichmentGHSA-f9w8-ggmf-6h55
  70. 2026-08-04 10:35 UTCEPSS rescoreEPSS 0.2% · 9th percentile
  71. 2026-08-04 09:27 UTCEG score recomputeFirst assessed: 7.8 HIGH
  72. 2026-08-04 09:27 UTCGHSA enrichmentGHSA-f9w8-ggmf-6h55
  73. 2026-08-04 09:20 UTCMITRE cvelistV5CVSS v3 → 7.8 · severity → HIGH
  74. 2026-08-03 10:33 UTCEPSS rescoreEPSS 0.2% · 9th percentile

Frequently asked(5)

What is CVE-2022-50650?
CVE-2022-50650 is a high-severity vulnerability; its CVE record was published on December 9, 2025. In the Linux kernel, the following vulnerability has been resolved: bpf: Fix reference state management for synchronous callbacks Currently, verifier verifies callback functions (sync and async) as if they will be executed once, (i.e. it explores execution state as if the function was being called…
When was the CVE record for CVE-2022-50650 published?
The CVE record for CVE-2022-50650 was published on December 9, 2025. That is the record's publication date; the vulnerability itself may have been made public earlier. EchelonGraph's copy of the record carries a last-modified date of October 15, 2026; the record at its source may have been updated since.
Is CVE-2022-50650 actively exploited?
CVE-2022-50650 is not currently on CISA's Known Exploited Vulnerabilities catalog. FIRST EPSS estimates a 0.2% probability of exploitation in the next 30 days (5th percentile of EPSS-scored CVEs).
What is the CVSS score of CVE-2022-50650?
CVE-2022-50650 has a CVSS base score of 7.8 (a secondary CVSS source that NVD displays; NVD's own analysis pending).
How do I remediate CVE-2022-50650?
A fix for CVE-2022-50650 is available: update to the fixed version the vendor names in its advisory. The vendor advisories EchelonGraph has for CVE-2022-50650 are linked in the Vendor Advisories panel on this page.

Dependency Blast Radius

See which npm, PyPI, Go, and Maven packages are affected by CVE-2022-50650

Explore →

Is Your Infrastructure Affected by CVE-2022-50650?

EchelonGraph automatically scans your cloud infrastructure and maps CVE exposure using blast radius analysis.