CVE-2015-8863
Off-by-one error in the tokenadd function in jv_parse.c in jq allows remote attackers to cause a...
Off-by-one error in the tokenadd function in jv_parse.c in jq allows remote attackers to cause a denial of service (crash) via a long JSON-encoded number, which triggers a heap-based buffer overflow.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- Low
- Privileges needed
- None
- User interaction
- None
What an attacker can affect
- Confidentiality
- High
- Integrity
- High
- Availability
- High
Exploit likelihood
What each source reports
NVD Score used
9.8
Off-by-one error in the tokenadd function in jv_parse.c in jq allows remote attackers to cause a denial of service (crash) via a long JSON-encoded number, which triggers a heap-based buffer overflow.
- Record
CVE-2015-8863- CVSS 3.0
- 9.8 Critical
CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H - CVSS 2.0
- 10.0 High
AV:N/AC:L/Au:N/C:C/I:C/A:C - Weakness
- CWE-119
- Updated
- 2026-11-02
CVE List No score
Off-by-one error in the tokenadd function in jv_parse.c in jq allows remote attackers to cause a denial of service (crash) via a long JSON-encoded number, which triggers a heap-based buffer overflow.
- Record
CVE-2015-8863- Updated
- 2026-11-02
EUVDEUVD-2015-8719 No score
Off-by-one error in the tokenadd function in jv_parse.c in jq allows remote attackers to cause a denial of service (crash) via a long JSON-encoded number, which triggers a heap-based buffer overflow.
- Record
EUVD-2015-8719- Updated
- 2026-11-03
GitHub AdvisoriesGHSA-j4rg-46c3-r5vq
9.8
Off-by-one error in the tokenadd function in jv_parse.c in jq allows remote attackers to cause a...
Off-by-one error in the tokenadd function in jv_parse.c in jq allows remote attackers to cause a denial of service (crash) via a long JSON-encoded number, which triggers a heap-based buffer overflow.
- Record
GHSA-j4rg-46c3-r5vq- CVSS 3.0
- 9.8 Critical
CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H - Weakness
- CWE-119
- Updated
- 2026-11-02
OSVAZL-6504
9.8
CVE-2015-8863 affecting package jq for versions less than 1.5-6
Off-by-one error in the tokenadd function in jv_parse.c in jq allows remote attackers to cause a denial of service (crash) via a long JSON-encoded number, which triggers a heap-based buffer overflow.
- Record
AZL-6504- CVSS 3.0
- 9.8 Critical
CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H - Updated
- 2026-11-02
OSV
9.8
Off-by-one error in the tokenadd function in jv_parse.c in jq allows remote attackers to cause a denial of service (crash) via a long JSON-encoded number, which triggers a heap-based buffer overflow.
- Record
CVE-2015-8863- CVSS 3.0
- 9.8 Critical
CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H - Updated
- 2026-11-02
Show 6 moreShow less
OSVDEBIAN-CVE-2015-8863
9.8
Off-by-one error in the tokenadd function in jv_parse.c in jq allows remote attackers to cause a denial of service (crash) via a long JSON-encoded number, which triggers a heap-based buffer overflow.
- Record
DEBIAN-CVE-2015-8863- CVSS 3.0
- 9.8 Critical
CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H - Updated
- 2026-11-02
OSVUBUNTU-CVE-2015-8863
9.8
Off-by-one error in the tokenadd function in jv_parse.c in jq allows remote attackers to cause a denial of service (crash) via a long JSON-encoded number, which triggers a heap-based buffer overflow.
- Record
UBUNTU-CVE-2015-8863- CVSS 3.0
- 9.8 Critical
CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H - Updated
- 2026-11-02
OSVMGASA-2017-0415 No score
Updated jq packages fix security vulnerabilities
A heap-based buffer overflow flaw was found in jq's tokenadd() function. By tricking a victim into processing a specially crafted JSON file, an attacker could use this flaw to crash jq or, potentially, execute arbitrary code on the victim's system (CVE-2015-8863).
Stack exhaustion could affect availability when parsing untrusted input (CVE-2016-4074).
- Record
MGASA-2017-0415- Updated
- 2026-11-02
OSVopenSUSE-SU-2024:10409-1 No score
jq-1.5-3.3 on GA media
These are all security issues fixed in the jq-1.5-3.3 package on the GA media of openSUSE Tumbleweed.
- Record
openSUSE-SU-2024:10409-1- Updated
- 2026-11-02
OSVSUSE-SU-2026:23873-1 No score
Security update for jq
This update for jq fixes the following issues:
Security issues fixed:
- CVE-2015-8863: heap buffer overflow in tokenadd() function (bsc#976992).
- CVE-2023-50246: improper memory handling can lead to a heap buffer overflow in
decNumberToString(bsc#1218034). - CVE-2023-50268: stack-based buffer overflow in builds using decNumber (bsc#1218038).
- CVE-2024-53427: stack-buffer-overflow in the decNumberCopy function in decNumber.c (bsc#1238078).
- CVE-2025-9403: reachable assertion in run_jq_tests() (bsc#1248600).
- CVE-2026-32316: denial of Service or potential arbitrary code execution due to integer overflow and heap-based buffer overflow (bsc#1262044).
- CVE-2026-33948: CLI input parsing allows validation bypass via embedded NUL bytes (bsc#1262043).
- CVE-2026-40164: predictable hash collisions can lead to a denial of service (bsc#1262072).
- CVE-2026-40612: jv_contains recurses into nested arrays/objects with no depth limit and can cause a stack overflow (bsc#1265060).
- CVE-2026-41256: embedded NUL truncates top-level jq programs loaded with -f and can lead to execution of unintended programs (bsc#1265061).
- CVE-2026-41257: integer overflow in
stack_reallocatecan lead to memory corruption and DoS (bsc#1265062). - CVE-2026-43894: signed integer overflow in
decNumbercan lead to out-of-bounds memory write (bsc#1265070). - CVE-2026-43895: embedded NUL bytes in import paths can lead to policy bypass and sensitive information disclosure (bsc#1265071).
- CVE-2026-43896: unbounded recursion in
jv_object_merge_recursive()can lead to C stack exhaustion and a process crash (bsc#1265075). - CVE-2026-44777: uncontrolled recursion in ordinary module loader when two valid modules
includeeach other can lead to stack exhaustion and process crash (bsc#1265076). - CVE-2026-47770: stack overflow in deep structural equality (bsc#1269221).
- CVE-2026-49839:
--rawfileinvalid-state reuse afterString too longcan lead to a heap buffer overflow (bsc#1269220). - CVE-2026-54679: integer overflow in
jvp_string_appendcan lead to a buffer overrun on 32-bit systems (bsc#1269390).
Changes for jq:
Update to version 1.7.1:
- Make the default background color more suitable for bright backgrounds.
- Allow passing the inline jq script after --.
- Fix possible uninitialised value dereference if jq_init() fails
- Simplify paths/0 and paths/1.
- Reject U+001F in string literals.
- Remove unused nref accumulator in block_bind_library.
- Remove a bunch of unused variables, and useless assignments.
- main.c: Remove unused EXIT_STATUS_EXACT option.
- Actually use the number correctly casted from double to int as index.
- src/builtin.c: remove unnecessary jv_copy-s in type_error/type_error2.
- Remove undefined behavior caught by LLVM 10 UBSAN.
- Convert decnum to binary64 (double) instead of decimal64. This makes jq behave like the JSON specification suggests and more similar to other languages.
- Fix memory leaks on invalid input for ltrimstr/1 and rtrimstr/1.
- Fix memory leak on failed get for setpath/2.
- Fix nan from json parsing also for nans with payload that start with 'n'.
- Allow carriage return characters in comments.
- Generate links in the man page.
- Add extern C for C++.
- Make object key color configurable using JQ_COLORS environment variable.
- Change the default color of null to Bright Black.
- Respect NO_COLOR environment variable to disable color output.
- Improved --help output. Now mentions all options and nicer order.
- Fix multiple issues of exit code using --exit-code/-e option.
- Add --raw-output0 for NUL (zero byte) separated output.
- Fix assert crash and validate JSON for --jsonarg.
- Remove deprecated --argfile option.
- Use decimal number literals to preserve precision. Comparison operations respects precision but arithmetic operations might truncate.
- Adds new builtin pick(stream) to emit a projection of the input object or array.
- Adds new builtin…
- Record
SUSE-SU-2026:23873-1- Updated
- 2026-11-02
OSVSUSE-SU-2026:4275-1 No score
Security update for jq
This update for jq fixes the following issues:
Security issues fixed:
- CVE-2015-8863: heap buffer overflow in tokenadd() function (bsc#976992).
- CVE-2023-50246: improper memory handling can lead to a heap buffer overflow in
decNumberToString(bsc#1218034). - CVE-2023-50268: stack-based buffer overflow in builds using decNumber (bsc#1218038).
- CVE-2024-53427: stack-buffer-overflow in the decNumberCopy function in decNumber.c (bsc#1238078).
- CVE-2025-9403: reachable assertion in run_jq_tests() (bsc#1248600).
- CVE-2026-33948: CLI input parsing allows validation bypass via embedded NUL bytes (bsc#1262043).
- CVE-2026-40164: predictable hash collisions can lead to a denial of service (bsc#1262072).
- CVE-2026-40612: jv_contains recurses into nested arrays/objects with no depth limit and can cause a stack overflow (bsc#1265060).
- CVE-2026-41256: embedded NUL truncates top-level jq programs loaded with -f and can lead to execution of unintended programs (bsc#1265061).
- CVE-2026-41257: integer overflow in
stack_reallocatecan lead to memory corruption and DoS (bsc#1265062). - CVE-2026-43894: signed integer overflow in
decNumbercan lead to out-of-bounds memory write (bsc#1265070). - CVE-2026-43895: embedded NUL bytes in import paths can lead to policy bypass and sensitive information disclosure (bsc#1265071).
- CVE-2026-43896: unbounded recursion in
jv_object_merge_recursive()can lead to C stack exhaustion and a process crash (bsc#1265075). - CVE-2026-44777: uncontrolled recursion in ordinary module loader when two valid modules
includeeach other can lead to stack exhaustion and process crash (bsc#1265076). - CVE-2026-47770: stack overflow in deep structural equality (bsc#1269221).
- CVE-2026-49839:
--rawfileinvalid-state reuse afterString too longcan lead to a heap buffer overflow (bsc#1269220). - CVE-2026-54679: integer overflow in
jvp_string_appendcan lead to a buffer overrun on 32-bit systems (bsc#1269390).
Changes for jq:
Update to version 1.7.1:
- Make the default background color more suitable for bright backgrounds.
- Allow passing the inline jq script after --.
- Fix possible uninitialised value dereference if jq_init() fails
- Simplify paths/0 and paths/1.
- Reject U+001F in string literals.
- Remove unused nref accumulator in block_bind_library.
- Remove a bunch of unused variables, and useless assignments.
- main.c: Remove unused EXIT_STATUS_EXACT option.
- Actually use the number correctly casted from double to int as index.
- src/builtin.c: remove unnecessary jv_copy-s in type_error/type_error2.
- Remove undefined behavior caught by LLVM 10 UBSAN.
- Convert decnum to binary64 (double) instead of decimal64. This makes jq behave like the JSON specification suggests and more similar to other languages.
- Fix memory leaks on invalid input for ltrimstr/1 and rtrimstr/1.
- Fix memory leak on failed get for setpath/2.
- Fix nan from json parsing also for nans with payload that start with 'n'.
- Allow carriage return characters in comments.
- Generate links in the man page.
- Add extern C for C++.
- Make object key color configurable using JQ_COLORS environment variable.
- Change the default color of null to Bright Black.
- Respect NO_COLOR environment variable to disable color output.
- Improved --help output. Now mentions all options and nicer order.
- Fix multiple issues of exit code using --exit-code/-e option.
- Add --raw-output0 for NUL (zero byte) separated output.
- Fix assert crash and validate JSON for --jsonarg.
- Remove deprecated --argfile option.
- Use decimal number literals to preserve precision. Comparison operations respects precision but arithmetic operations might truncate.
- Adds new builtin pick(stream) to emit a projection of the input object or array.
- Adds new builtin debug(msgs) that works like debug but applies a filter on the input before writing to stderr.
- Adds new builtin scan($re; $flags). Was documented…
- Record
SUSE-SU-2026:4275-1- Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
jqAzure Linux:2 |
before 1.5-6 | 1.5-6 |
jqDebian:12 |
before 1.5+dfsg-1.1 | 1.5+dfsg-1.1 |
jqDebian:13 |
before 1.5+dfsg-1.1 | 1.5+dfsg-1.1 |
jqDebian:14 |
before 1.5+dfsg-1.1 | 1.5+dfsg-1.1 |
jqMageia:6 From an advisory covering 2 CVEs |
before 1.5-1.1.mga6 | 1.5-1.1.mga6 |
jqRed Hat:openstack:6::el7 |
before 0:1.3-3.el7ost | 0:1.3-3.el7ost |
jq-debuginfoRed Hat:openstack:6::el7 |
before 0:1.3-3.el7ost | 0:1.3-3.el7ost |
jqRed Hat:openstack:7::el7 |
before 0:1.3-3.el7ost | 0:1.3-3.el7ost |
jq-debuginfoRed Hat:openstack:7::el7 |
before 0:1.3-3.el7ost | 0:1.3-3.el7ost |
jqRed Hat:openstack:8::el7 |
before 0:1.3-3.el7ost | 0:1.3-3.el7ost |
Show 19 moreShow less
| Package | Affected | Fixed |
|---|---|---|
jq-debuginfoRed Hat:openstack:8::el7 |
before 0:1.3-3.el7ost | 0:1.3-3.el7ost |
jqSUSE:Linux Micro 6.0 From an advisory covering 18 CVEs |
before 1.7.1-1.1 | 1.7.1-1.1 |
jqSUSE:Linux Enterprise Micro 5.3 From an advisory covering 17 CVEs |
before 1.7.1-150000.3.25.1 | 1.7.1-150000.3.25.1 |
jqSUSE:Linux Enterprise Micro 5.4 From an advisory covering 17 CVEs |
before 1.7.1-150000.3.25.1 | 1.7.1-150000.3.25.1 |
jqSUSE:Linux Enterprise Micro 5.5 From an advisory covering 17 CVEs |
before 1.7.1-150000.3.25.1 | 1.7.1-150000.3.25.1 |
jqSUSE:Linux Enterprise Module for Basesystem 15 SP7 From an advisory covering 17 CVEs |
before 1.7.1-150000.3.25.1 | 1.7.1-150000.3.25.1 |
jqSUSE:Linux Enterprise High Performance Computing 15 SP4-ESPOS From an advisory covering 17 CVEs |
before 1.7.1-150000.3.25.1 | 1.7.1-150000.3.25.1 |
jqSUSE:Linux Enterprise High Performance Computing 15 SP4-LTSS From an advisory covering 17 CVEs |
before 1.7.1-150000.3.25.1 | 1.7.1-150000.3.25.1 |
jqSUSE:Linux Enterprise High Performance Computing 15 SP5-ESPOS From an advisory covering 17 CVEs |
before 1.7.1-150000.3.25.1 | 1.7.1-150000.3.25.1 |
jqSUSE:Linux Enterprise High Performance Computing 15 SP5-LTSS From an advisory covering 17 CVEs |
before 1.7.1-150000.3.25.1 | 1.7.1-150000.3.25.1 |
jqSUSE:Linux Enterprise Server 15 SP4-LTSS From an advisory covering 17 CVEs |
before 1.7.1-150000.3.25.1 | 1.7.1-150000.3.25.1 |
jqSUSE:Linux Enterprise Server 15 SP5-LTSS From an advisory covering 17 CVEs |
before 1.7.1-150000.3.25.1 | 1.7.1-150000.3.25.1 |
jqSUSE:Linux Enterprise Server 15 SP6-LTSS From an advisory covering 17 CVEs |
before 1.7.1-150000.3.25.1 | 1.7.1-150000.3.25.1 |
jqSUSE:Linux Enterprise Server for SAP Applications 15 SP4 From an advisory covering 17 CVEs |
before 1.7.1-150000.3.25.1 | 1.7.1-150000.3.25.1 |
jqSUSE:Linux Enterprise Server for SAP Applications 15 SP5 From an advisory covering 17 CVEs |
before 1.7.1-150000.3.25.1 | 1.7.1-150000.3.25.1 |
jqSUSE:Linux Enterprise Server for SAP Applications 15 SP6 From an advisory covering 17 CVEs |
before 1.7.1-150000.3.25.1 | 1.7.1-150000.3.25.1 |
jqUbuntu:14.04:LTS |
before 1.3-1.1ubuntu1.1, plus listed versions 1.2-81.3-11.3-1.1ubuntu1 |
1.3-1.1ubuntu1.1 |
jqUbuntu:16.04:LTS |
before 1.5+dfsg-1ubuntu0.1, plus listed versions 1.4-2.11.5+dfsg-1 |
1.5+dfsg-1ubuntu0.1 |
jqopenSUSE:Tumbleweed |
before 1.5-3.3 | 1.5-3.3 |
History
| Recorded | Changed | Sources |
|---|---|---|
| affected, facts | ||
| aliases | EUVD | |
| first indexed | CVE List, GitHub Advisories, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2015-8863 is a critical vulnerability (CVSS 9.8) in Jq Project Jq, published May 6, 2016. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 7.27%, the 94th percentile. Fixed in jq 1.5-6.
References
rhn.redhat.com/errata/RHSA-2016-1106.html
rhn.redhat.com/errata/RHSA-2016-1099.html
openwall.com/lists/oss-security/2016/04/23/2
lists.opensuse.org/opensuse-updates/2016-05/msg00012.html
rhn.redhat.com/errata/RHSA-2016-1098.html
bugs.debian.org/cgi-bin/bugreport.cgi?bug=802231
Show 61 moreShow less
github.com/stedolan/jq/commit/8eb1367ca44e772963e704a700ef72ae2e12babd
github.com/stedolan/jq/issues/995
openwall.com/lists/oss-security/2016/04/23/1
lists.opensuse.org/opensuse-updates/2016-05/msg00014.html
security.gentoo.org/glsa/201612-20
nvd.nist.gov/vuln/detail/CVE-2015-8863
github.com/advisories/GHSA-j4rg-46c3-r5vq
security-tracker.debian.org/tracker/CVE-2015-8863
advisories.mageia.org/MGASA-2017-0415.html
bugs.mageia.org/show_bug.cgi?id=21923
lists.opensuse.org/opensuse-updates/2017-10/msg00083.html
access.redhat.com/errata/RHSA-2016:1098
access.redhat.com/security/updates/classification
bugzilla.redhat.com/show_bug.cgi?id=1328747
security.access.redhat.com/data/csaf/v2/advisories/2016/rhsa-2016_1098.json
access.redhat.com/security/cve/CVE-2015-8863
cve.org/CVERecord?id=CVE-2015-8863
access.redhat.com/errata/RHSA-2016:1099
security.access.redhat.com/data/csaf/v2/advisories/2016/rhsa-2016_1099.json
access.redhat.com/errata/RHSA-2016:1106
security.access.redhat.com/data/csaf/v2/advisories/2016/rhsa-2016_1106.json
suse.com/support/update/announcement/2026/suse-su-202623873-1
bugzilla.suse.com/1215737
bugzilla.suse.com/1218034
bugzilla.suse.com/1218038
bugzilla.suse.com/1238078
bugzilla.suse.com/1248600
bugzilla.suse.com/1262043
bugzilla.suse.com/1262044
bugzilla.suse.com/1262072
bugzilla.suse.com/1265060
bugzilla.suse.com/1265061
bugzilla.suse.com/1265062
bugzilla.suse.com/1265070
bugzilla.suse.com/1265071
bugzilla.suse.com/1265075
bugzilla.suse.com/1265076
bugzilla.suse.com/1269220
bugzilla.suse.com/1269221
bugzilla.suse.com/1269390
bugzilla.suse.com/976992
suse.com/security/cve/CVE-2015-8863
suse.com/security/cve/CVE-2023-50246
suse.com/security/cve/CVE-2023-50268
suse.com/security/cve/CVE-2024-53427
suse.com/security/cve/CVE-2025-9403
suse.com/security/cve/CVE-2026-32316
suse.com/security/cve/CVE-2026-33948
suse.com/security/cve/CVE-2026-40164
suse.com/security/cve/CVE-2026-40612
suse.com/security/cve/CVE-2026-41256
suse.com/security/cve/CVE-2026-41257
suse.com/security/cve/CVE-2026-43894
suse.com/security/cve/CVE-2026-43895
suse.com/security/cve/CVE-2026-43896
suse.com/security/cve/CVE-2026-44777
suse.com/security/cve/CVE-2026-47770
suse.com/security/cve/CVE-2026-49839
suse.com/security/cve/CVE-2026-54679
suse.com/support/update/announcement/2026/suse-su-20264275-1
ubuntu.com/security/CVE-2015-8863
Left out here: the rest of 2 source descriptions. The JSON record has them.