Reported bugs
Only bugs with public reports appear in this table.
- Not yet reported
- We found the bug. We'll report it to the maintainers only after human review.
- Reported
- We reported the bug to the maintainers. They haven't confirmed it yet.
- Confirmed
- A maintainer agrees it's a bug.
- Fixed
- The bug has been fixed.
Latest feed unavailable or not fully assessed; showing the last reviewed public snapshot (2026-11-05).
| Severity | Bug | Project | Status | Reported |
|---|---|---|---|---|
| low | chacha20poly1305_encrypt and _decrypt truncate size_t lengths to 32 bitsLinux kernel (WireGuard) ยท Memory-safety bugโ
254,426 stars If one call gets 4 GiB or more, only the first (length mod 4 GiB) bytes are encrypted and authenticated; the rest stays plaintext and unauthenticated. Full details and maintainer reply | Linux kernel (WireGuard) | Fixed | |
| low | poly1305_update wraps buflen plus nbytes in 32 bits and writes out of boundsLinux kernel (WireGuard) ยท Memory-safety bugโ
254,426 stars If one poly1305_update call has nbytes at least 2^32 minus buflen, with 1 to 15 bytes buffered, it writes about 4 GiB out of bounds. The write corrupts memory over the 16-byte buffer of poly1305_desc_ctx, and no in-tree caller can do that. Full details and maintainer reply | Linux kernel (WireGuard) | Fixed | |
| medium | getByRole name filter misses meter and progress elements labelled by a label tagPlaywright ยท Wrong-result bugโ 472M / moโ
99,334 stars The accessible name of meter and progress ignores an associated label, so getByRole with a name returns zero matches while getByLabel finds the same element. Full details and maintainer reply | Playwright | Fixed | |
| low | Search input with a broken list attribute gets combobox role, not searchboxPlaywright ยท Wrong-result bugโ 472M / moโ
99,334 stars A search input whose list attribute points to no datalist gets the combobox role, unlike Chrome's searchbox role. So getByRole searchbox finds nothing, while the combobox role matches the input by mistake. Full details and maintainer reply | Playwright | Fixed | |
| high | The listpack reader fails an assert on some entries written before 8.8Redis ยท Crashโ
77,194 stars Redis 8.8 changes the length encoding of 16383, 2097151 and 268435455 byte entries. Older listpacks with these entries fail validation, and the reader asserts. Full details and maintainer reply | Redis | Fixed | |
| high | cy.contains with a g or y regex flag misses matching elementsCypress ยท Wrong-result bugโ 24M / moโ
51,021 stars A regex with the global or sticky flag keeps lastIndex between candidate elements, so the command tests only about half of the matching elements. The command can pick the wrong element or time out while matches exist. Full details and maintainer reply | Cypress | Reported | |
| low | selectFile on a label fails when its for id contains dots, spaces or colonsCypress ยท API-contract bugโ 24M / moโ
51,021 stars The label's for value enters a CSS selector unescaped, so ids with dots or spaces resolve to nothing and selectFile reports an unhelpful error. An id with a colon throws a raw selector syntax error. Full details and maintainer reply | Cypress | Reported | |
| low | cy.contains cannot find submit buttons by a partial word of their valueCypress ยท API-contract bugโ 24M / moโ
51,021 stars Submit inputs match only whole words in their value, while other elements match any substring. cy.contains('User') misses an input whose value is Username, so the command times out. Full details and maintainer reply | Cypress | Reported | |
| medium | NTLM auth block without a domain line makes a valid file fail to parseBruno ยท Crashโ 1.1M / moโ
48,177 stars If an auth:ntlm block has a username and password but no domain line, the parser throws a TypeError on parse. The domain lookup checks the password key but reads the domain key. Full details and maintainer reply | Bruno | Fixed | |
| low | curl's IPv6 parser drops the zone id's first two digits after %25curl ยท Wrong-result bugโ
43,392 stars A URL with a link-local address and a zone id that starts with 25 after an encoded percent sign loses those two characters. curl then uses another interface's zone id, or fails to find one. Full details and maintainer reply | curl | Fixed | |
| low | curl_url_get returns OK with a NULL string for an empty part under CURLU_URLENCODEcurl ยท API-contract bugโ
43,392 stars An empty user name with CURLU_URLENCODE returns CURLUE_OK and a NULL string. A caller that uses the string then dereferences NULL. Full details and maintainer reply | curl | Fixed | |
| medium | CSS escape of a non-ASCII first digit picks the wrong ASCII code pointSelenium ยท Wrong-result bugโ 35M / moโ
34,578 stars By.className and By.id escape a Unicode digit at the start such as an Arabic-Indic five as the ASCII five. The selector for that class matches the same element as the ASCII class name. Full details and maintainer reply | Selenium | Fixed | |
| medium | By.name with % throws a format exception or builds a wrong selectorSelenium ยท API-contract bugโ 35M / moโ
34,578 stars By.name runs String.format twice, so a name such as 100% throws UnknownFormatConversionException, and a name like a%db throws IllegalFormatConversionException at construction time. Full details and maintainer reply | Selenium | Fixed | |
| medium | The Phoenix ranker lets candidates attend to their neighboursx-algorithm ยท Wrong-result bugโ
34,085 stars If history has 127 or 128 events with the QUICKSTART settings, the last key block contains candidates. A candidate logit then changes when other candidates in the request change. Full details and maintainer reply | x-algorithm | Reported | |
| medium | The author pool sort panics on a NaN scorex-algorithm ยท Crashโ
34,085 stars If one score is NaN, the comparison function breaks the total order. On Rust 1.96.0, a 22-item input makes the ranking operation panic. Full details and maintainer reply | x-algorithm | Reported | |
| medium | The request drops the viewer's muted keywords when viewer data failsx-algorithm ยท Wrong-result bugโ
34,085 stars If the viewer data fetch errors or takes over 200 ms, the request uses default viewer data. The request then shows posts with muted keywords. Full details and maintainer reply | x-algorithm | Reported | |
| high | The following timeline stops paging when all posts of a page are removedx-algorithm ยท Wrong-result bugโ
34,085 stars If all posts of a fetched page are removed, the cursor does not advance. The next request returns the same page, so older posts stay unreachable. Full details and maintainer reply | x-algorithm | Reported | |
| medium | Gauge max reports 0 when every sample is negativek6 ยท Wrong-result bugโ
32,144 stars A gauge max starts at 0 and is never guarded for the first sample, so an all-negative series reports max 0 in summaries and JSON exports. Full details and maintainer reply | k6 | Fixed | |
| low | ngx_inet6_addr rejects valid IPv6 forms and accepts malformed colon patternsnginx ยท API-contract bugโ
32,053 stars Texts such as 1:2:3:4:5:6:7:: and ::ffff:255.255.255.255 are rejected. Texts such as :1:2:3:4:5:6:7:8 and 1::2: are accepted. Full details and maintainer reply | nginx | Confirmed (fix in progress) | |
| low | nginx PROXY v1 reader accepts malformed addresses and ports and reports themnginx ยท API-contract bugโ
32,053 stars Heading zeroes, out-of-range numbers and empty addresses pass into $proxy_protocol_addr. The specification says such a header must abort the connection. Full details and maintainer reply | nginx | Confirmed | |
| low | WPACKET_quic_write_vlint() crashes on a null WPACKETOpenSSL ยท Crashโ 235k / moโ
31,192 stars If a caller uses a null WPACKET with WPACKET_quic_write_vlint(), the encoder writes through NULL. The process crashes with a segmentation fault. Full details and maintainer reply | OpenSSL | Confirmed (fix in progress) | |
| low | The QUIC length-prefixed reader does not set the sub-packet message startOpenSSL ยท Wrong-result bugโ 235k / moโ
31,192 stars If code calls PACKET_get_quic_length_prefixed(), the sub-packet message start is not set. PACKET_msg_start() then returns NULL or an unrelated pointer. Full details and maintainer reply | OpenSSL | Fixed | |
| medium | Async requests logged as None lower all reported response-time percentilesLocust ยท Wrong-result bugโ 9.4M / moโ
28,262 stars Requests logged with response_time None, the documented async pattern, count in the percentile denominator but not in the histogram. This lowers every p50 to p99.9 toward the minimum, while median and average stay correct. Full details and maintainer reply | Locust | Fixed | |
| low | The stream decoder accepts a frame shorter than its declared content sizezstd ยท API-contract bugโ 197k / moโ
28,167 stars If a frame ends with an empty last block, the stream decoder accepts it with fewer bytes than declared. The one-shot decoder rejects the same frame. Full details and maintainer reply | zstd | Reported | |
| low | ZSTD_getDictID_fromFrame returns the magic variant of a skippable frame as a dictionary IDzstd ยท API-contract bugโ 197k / moโ
28,167 stars A caller that asks a skippable frame for its dictionary ID gets its magic variant. The API documents 0 for a frame that is not Zstandard. Full details and maintainer reply | zstd | Reported | |
| low | One-shot zstd decoding rejects skippable frames with 4 GiB of user datazstd ยท API-contract bugโ 197k / moโ
28,167 stars RFC 8878 allows up to 2^32 - 1 bytes of user data, but a 32-bit sum makes one-shot decoding refuse the last 8 sizes. Streaming decoding skips the frame. Full details and maintainer reply | zstd | Reported | |
| medium | Virtual sensor routes use /sensors, not the spec's /sensor pathAppium ยท API-contract bugโ 4.7M / moโ
22,183 stars Get, update and delete calls at the W3C spec path /sensor/{type} return not found. The server registers virtual sensor routes under the plural /sensors path, so spec-conformant clients cannot reach them. Full details and maintainer reply | Appium | Fixed | |
| medium | Timeout errors return HTTP 408 instead of the spec's 500, so clients may retryAppium ยท API-contract bugโ 4.7M / moโ
22,183 stars Implicit wait, element find and async script timeouts answer with 408 Request Timeout. Keep-alive clients and proxies may replay a 408 by themselves, so the timed-out command can run twice. Full details and maintainer reply | Appium | Fixed | |
| low | JTD parser rejects valid JSON unicode escapes inside enum string valuesAjv ยท API-contract bugโ 1.6B / moโ
14,871 stars If a string spells an allowed enum value with a unicode escape, such as \u0041 for A, the parser fails with an unexpected token error. The same value typed as plain text parses fine. Full details and maintainer reply | Ajv | Reported | |
| medium | coturn reads past the message when an HTTP Content-Length value is emptycoturn ยท Memory-safety bugโ
14,538 stars A message whose last header is an empty Content-Length makes is_http read past the message end, before authentication. The bytes read change only a length that the callers then reject. Full details and maintainer reply | coturn | Reported | |
| high | coturn writes one byte past the STUN buffer when it pads a ChannelData messagecoturn ยท Memory-safety bugโ
14,538 stars With padding on, a payload of 65501 to 65503 bytes passes the length check. The pad then writes one byte past the buffer. Full details and maintainer reply | coturn | Confirmed (fix in progress) | |
| medium | coturn never adds MESSAGE-INTEGRITY to a short-term credential messagecoturn ยท API-contract bugโ
14,538 stars A missing ! makes the builder return false after each successful USERNAME add. The message then fails its integrity check. Full details and maintainer reply | coturn | Reported | |
| medium | Pillow Sun raster decoder ignores scan-line padding, so odd-width images decode shearedPillow ยท Wrong-result bugโ 436M / moโ
13,970 stars Byte-encoded Sun raster images with an odd scan-line byte count read the padding as the next row's first pixel. Every such file decodes to wrong pixels without an error. Full details and maintainer reply | Pillow | Reported | |
| low | SectionHeader.from_params raises KeyError for the invalid header typeRobot Framework ยท Crashโ 3.9M / moโ
11,981 stars The default name table has six entries, but the code handles more than six types. Zip truncates, so the INVALID HEADER type gets no name and rebuilds from parsed invalid headers fail with KeyError. Full details and maintainer reply | Robot Framework | Fixed | |
| medium | Cancelled FPY sequence still runs its queued directiveF Prime ยท Concurrency bugโ
11,856 stars A directive queued before a CANCEL runs after the sequencer reports the cancel, so a command can reach its target. A stale stack directive can set an out-of-range stack size, and the window is narrow but deterministic once hit. Full details and maintainer reply | F Prime | Fixed | |
| medium | Equality match treats distinct integers above 2^53 as equalKarate ยท Soundness bugโ
9,005 stars Numeric match compares values as doubles, so large Long or BigInteger values that differ by one look equal. Values such as snowflake ids or balances pass an EQUALS assertion and fail NOT_EQUALS. Full details and maintainer reply | Karate | Fixed | |
| medium | contains only deep ignores duplicate counts, so unequal multisets passKarate ยท Soundness bugโ
9,005 stars On equal-length arrays with different duplicate counts, contains only deep passes where contains only fails. So a roles list with an extra admin entry can satisfy the assertion. Full details and maintainer reply | Karate | Fixed | |
| medium | Negated partial schema macro passes on a list whose element contains the schemaKarate ยท Soundness bugโ
9,005 stars The not-contains-partial macro uses exact matching for list elements. So an array with an element that matches only in part still passes, while the positive form passes on the same data. Full details and maintainer reply | Karate | Fixed | |
| medium | Multipart matcher with name and filename ignores the name constraintWireMock ยท Wrong-result bugโ
7,418 stars withName and withFileName write the same Content-Disposition key, so the second overwrites the first. A stub then accepts a part with the wrong form field name if the filename matches. Full details and maintainer reply | WireMock | Fixed | |
| medium | XPath boolean expressions always match, so stubs fire on false conditionsWireMock ยท Wrong-result bugโ
7,418 stars If a one-argument matchesXPath expression yields a boolean, such as count(//x) = 99 or 1 = 2, it always matches. Stubs then fire for documents that fail the condition. Full details and maintainer reply | WireMock | Reported | |
| high | TypedArray toSorted on a subarray sorts from the start of the buffergoja ยท Wrong-result bugโ
7,187 stars A call to toSorted on a typed array view with a non-zero offset, such as subarray(3), sorts elements from the start of the underlying buffer. The result is wrong data on a common path, without an error. Full details and maintainer reply | goja | Fixed | |
| medium | String split with an empty separator splits emoji into one piece instead of twogoja ยท Wrong-result bugโ
7,187 stars An empty separator makes split count characters outside the BMP as one element instead of two UTF-16 code units. The split length then disagrees with the string's own length. Full details and maintainer reply | goja | Fixed | |
| medium | The deflate stream at level 0 ends early when the data exceeds 4 GiBzlib ยท Data-loss bugโ
7,187 stars If level 0 gets Z_FINISH with more than 4 GiB of buffered and new input, a 32-bit sum wraps. The stream ends with most of the input unread. Full details and maintainer reply | zlib | Fixed | |
| medium | Large negative decimal JSON numbers become -Infinity when read as floatREST Assured ยท Wrong-result bugโ
7,147 stars With default settings JsonPath picks float for negative non-integers beyond Float.MAX_VALUE, so -1e40 returns -Infinity while +1e40 stays a correct double. Full details and maintainer reply | REST Assured | Fixed | |
| high | array.properties returns null for all elements when the first lacks propertiesREST Assured ยท Wrong-result bugโ
7,147 stars The Groovy-5 spread workaround only runs when the first array element has a properties key. So a GeoJSON feature list whose first feature lacks it returns null and drops every feature's data. Full details and maintainer reply | REST Assured | Fixed | |
| low | XmlPath negative index on a hyphenated element name fails with an unclear errorREST Assured ยท API-contract bugโ
7,147 stars XmlPath with a hyphenated element name and a negative index, such as root.some-list[-1], throws a parameter list was not defined error. The hyphen is not escaped, and the error points at params() instead of that cause. Full details and maintainer reply | REST Assured | Fixed | |
| low | randomUuid produces UUIDs marked as version 0 instead of version 4Gatling ยท Wrong-result bugโ
6,958 stars The version bits of generated random UUIDs hold 0, so every value fails a version-4 check. Values remain random, but code that validates UUID versions rejects them. Full details and maintainer reply | Gatling | Fixed | |
| medium | substring(pattern).find(n) never finds a match when n is 1 or moreGatling ยท Wrong-result bugโ
6,958 stars substring(pattern).find(n) with n of 1 or more never finds the match, while find(0) and findAll work. Checks that capture a later occurrence fail. Full details and maintainer reply | Gatling | Fixed | |
| low | Out-of-range negative EL index throws an uncaught exception for arrays and java.util.ListGatling ยท Crashโ
6,958 stars A negative index whose magnitude exceeds the length, such as x(-5) on three elements, throws IndexOutOfBoundsException for arrays, java.util.List and tuples. Scala Seq and List return a clean failure. Full details and maintainer reply | Gatling | Fixed | |
| low | Compiler crashes with MatchError on an erroneous quoted pattern with an importScala 3 ยท Crashโ
6,332 stars An inline match in a non-inline method has a quoted pattern with an unresolved import. Error recovery then calls tpd.singleton on an error type, so the compiler crashes with MatchError instead of reporting the unresolved import. Full details and maintainer reply | Scala 3 | Confirmed | |
| low | Compiler aborts with AssertionError on a malformed context bound with a quoteScala 3 ยท Crashโ
6,332 stars Malformed context bounds with intersection types and a quoted expression trigger an AssertionError in TypeOps.dominators. The compiler then aborts in the typer phase, without a clean error report. Full details and maintainer reply | Scala 3 | Reported | |
| low | Parser crashes when a line comment hides then in a for generator inside newScala 3 ยท Crashโ
6,332 stars A comment that hides the then keyword of an if inside a for generator within new arguments fails a position check. The compiler then aborts during parser error recovery. Full details and maintainer reply | Scala 3 | Fixed | |
| low | Compiler asserts on a duplicate enum name with simple and parametric casesScala 3 ยท Crashโ
6,332 stars The code declares enum E twice, once with a simple case K0 and once with a parametric case K0. This causes an AssertionError in typer instead of a duplicate definition error. Full details and maintainer reply | Scala 3 | Fixed | |
| medium | Nested macro splices at depth 230 overflow the stack during inliningScala 3 ยท Crashโ
6,332 stars A recursive macro that splices itself compiles at depth 220 but raises StackOverflowError at depth 230 during the inlining phase, so valid code fails to compile. Full details and maintainer reply | Scala 3 | Fixed | |
| medium | Erased context parameter before a normal one produces bytecode the JVM rejectsScala 3 ยท Crashโ
6,332 stars A method with an erased `using` parameter followed by a normal context parameter gets wrong local slot numbers, so the JVM throws VerifyError at runtime. The reversed order works. Full details and maintainer reply | Scala 3 | Fixed | |
| medium | Compiler asserts in erasure when an override uses an erased `using` clauseScala 3 ยท Crashโ
6,332 stars A generic trait method has an erased `using` clause before a type-parameter argument. An override of it triggers an AssertionError in erasure, so valid code fails to compile. Full details and maintainer reply | Scala 3 | Fixed | |
| low | Compiler asserts on exports of members from a cyclic opaque type companionScala 3 ยท Crashโ
6,332 stars An export of members of an opaque type companion with a self-referential alias triggers an AssertionError in Namer after the cyclic type error. The compiler does not make a clean exit. Full details and maintainer reply | Scala 3 | Fixed | |
| medium | The callback stream accepts input that ends inside a submessageNanopb ยท Soundness bugโ 420k / moโ
5,602 stars If the input ends inside a submessage, pb_decode() returns true and drops the rest. A buffer stream reports an error for the same input. Full details and maintainer reply | Nanopb | Confirmed (fix in progress) | |
| medium | The pb_decode() function crashes on a message with a custom extension typeNanopb ยท Crashโ 420k / moโ
5,602 stars If a message has an extension type with its own decode function, the decoder dereferences NULL. The crash happens before the custom function runs. Full details and maintainer reply | Nanopb | Fixed | |
| low | Verilator rejects an undeclared data input of bufif and nmos gates with a plain enableVerilator ยท API-contract bugโ
4,059 stars When the enable of a bufif, notif, nmos or pmos gate is a plain identifier, Verilator rejects an undeclared data input. IEEE 1800 requires an implicit net there, as for and gates. Full details and maintainer reply | Verilator | Fixed | |
| medium | Compiler aborts with an assertion when a generate block declares a classIcarus Verilog ยท Crashโ
3,718 stars If a valid class sits inside a generate block, iverilog fails an internal assertion and aborts. The same class at module scope compiles fine. Full details and maintainer reply | Icarus Verilog | Fixed | |
| medium | Compiler segfaults when it cannot resolve an enum value in its generate blockIcarus Verilog ยท Crashโ
3,718 stars If the same generate block declares and uses an enum, the compiler cannot resolve its value and segfaults. Declare the enum at module scope to avoid the crash. Full details and maintainer reply | Icarus Verilog | Fixed | |
| medium | buf, not or tran gate with different output widths makes iverilog abortIcarus Verilog ยท Crashโ
3,718 stars If a buf, not or tran gate has outputs of different widths, an internal assertion fails and iverilog aborts without a normal width error. Full details and maintainer reply | Icarus Verilog | Reported | |
| medium | Simulator overflows its stack on a stable loop through a real or strength netIcarus Verilog ยท Crashโ
3,718 stars If a wire drives itself through bufif1, or a real variable assigns itself, vvp recurses. vvp recurses until it segfaults at time 0, even though the value never changes. Full details and maintainer reply | Icarus Verilog | Fixed | |
| low | The compiler rejects a qualified name for a local namespaceIdris 2 ยท API-contract bugโ
3,105 stars If a namespace is declared in a where or let block, its qualified names do not resolve. The compiler reports an undefined name error, but the unqualified name works. Full details and maintainer reply | Idris 2 | Reported | |
| low | BiggerDecimal integral check accepts '-', '+' and letters, and crashes on empty stringCirce ยท Wrong-result bugโ
2,543 stars integralIsValidLong returns true for '-', '+' and 'a', and throws StringIndexOutOfBoundsException on an empty string. Its documented precondition is not checked. Full details and maintainer reply | Circe | Reported | |
| medium | Printer with empty indent puts rbraceLeft and rbraceRight in swapped positionsCirce ยท Wrong-result bugโ
2,543 stars If indent is empty and the brace padding is custom, the padding after the closing brace appears before it and the reverse. The indented output path produces the correct order, so only the no-indent path is incorrect. Full details and maintainer reply | Circe | Reported | |
| low | Printer indents text after a closing brace at the child nesting depthCirce ยท Wrong-result bugโ
2,543 stars If the indent is not empty and newline padding follows closing braces or brackets, the printer indents the next text one level too deep. The error affects only the whitespace of custom-printed JSON. Full details and maintainer reply | Circe | Reported | |
| high | linesLimited misses over-long lines that arrive together with their newlinefs2 ยท API-contract bugโ
2,456 stars If a complete over-long line and its terminator arrive in one chunk, linesLimited skips the length check and passes the line. The same input split into single elements raises LineTooLongException, so the guard depends on chunking. Full details and maintainer reply | fs2 | Fixed | |
| medium | leptonica numaIsSorted compares each element with the first one onlyleptonica ยท Wrong-result bugโ 15k / moโ
2,099 stars It reports an array as sorted when the first element is its minimum or maximum. numaInterpolateArbxInterval then skips its sort and gives wrong values. Full details and maintainer reply | leptonica | Fixed | |
| high | leptonica numaWindowedMean dereferences NULL when the window is wider than the arrayleptonica ยท Crashโ 15k / moโ
2,099 stars numaAddSpecifiedBorder returns NULL for such a window, and the result is not checked. The process crashes; pixThresholdByHisto reaches it. Full details and maintainer reply | leptonica | Fixed | |
| high | leptonica parseStringForNumbers calls atof(NULL) on a string with no numbersleptonica ยท Crashโ 15k / moโ
2,099 stars An empty or separator-only string gives a NULL first token. The process crashes; kernelCreateFromFile reaches it with a blank data line. Full details and maintainer reply | leptonica | Fixed | |
| high | leptonica pixMaxDynamicRange reads before its log table for large 32-bit pixelsleptonica ยท Memory-safety bugโ 15k / moโ
2,099 stars A 32 bpp pixel of 2^31 or more becomes a negative maximum. The log scale then reads before the 256-entry table, up to a crash. Full details and maintainer reply | leptonica | Fixed | |
| high | leptonica pixScaleGray2xLIDither and 4x read past the raster of a one-row imageleptonica ยท Memory-safety bugโ 15k / moโ
2,099 stars pixScaleGray2xLIDither and pixScaleGray4xLIDither copy a second source row that does not exist. The overread grows with the image width. Full details and maintainer reply | leptonica | Fixed | |
| low | leptonica numaRebinHistogram loses the x-axis of the input histogramleptonica ยท Wrong-result bugโ 15k / moโ
2,099 stars It reads startx and binsize from the new array, not from the input. numaHistogramGetValFromRank then gives wrong values for the new histogram. Full details and maintainer reply | leptonica | Fixed | |
| medium | leptonica numaUniformSampling gives negative or zero values at bin edgesleptonica ยท Wrong-result bugโ 15k / moโ
2,099 stars Wrong edge weights drop boundary samples, also for the identity case. For example, {1,2,3} becomes {0,0,-3}. Full details and maintainer reply | leptonica | Confirmed | |
| low | stringToLong accepts negative zero and breaks the prism round-trip lawMonocle ยท API-contract bugโ
1,701 stars The string prism parses '-0' to 0 and reverseGet returns '0', so the round-trip law fails for '-0', '-00' and '-01'. Full details and maintainer reply | Monocle | Fixed | |
| medium | ByteBuffer bodies are wrong or fail for direct buffers and for consumed bufferssttp ยท Wrong-result bugโ
1,506 stars If several code paths call ByteBuffer.array, it throws for direct and read only buffers. For consumed buffers, it returns the whole array behind the buffer, so request or response bodies come out wrong. Full details and maintainer reply | sttp | Fixed | |
| low | toCurl drops multipart file names, content types and per-part headerssttp ยท Diagnostics bugโ
1,506 stars If a request has a multipart body, the curl output omits filename, content type and per-part headers. For other body types, it prints a placeholder, so the debug command sends a different request. Full details and maintainer reply | sttp | Fixed | |
| medium | Digest auth throws Unknown qop when the server lists several qopssttp ยท API-contract bugโ
1,506 stars If the server sends qop as auth,auth-int, the client compares the whole string against auth and auth-int. It then throws IllegalArgumentException with Unknown qop, so the request fails. Full details and maintainer reply | sttp | Fixed | |
| low | Enum validator's description string is missing its closing parenthesisTapir ยท Wrong-result bugโ
1,476 stars When a program logs the description of an enumeration validator, it prints an unbalanced string such as Some(in(A,B,C. Only the printed text is wrong, not the validation itself. Full details and maintainer reply | Tapir | Fixed | |
| low | Schema product field has equals without a matching hashCodeTapir ยท Wrong-result bugโ
1,476 stars If two product fields are equal, they get different hash codes, so maps, sets and distinct() can miss or duplicate them. Only code that puts these schema types into hash-based collections has the problem. Full details and maintainer reply | Tapir | Fixed | |
| low | Default CORS settings leave PATCH out, so browsers block PATCH requestsTapir ยท API-contract bugโ
1,476 stars If the default CORS interceptor runs, browser preflight for PATCH fails with no Access-Control-Allow-Methods header, so the request never reaches the route. Add PATCH to the allowed methods as a workaround. Full details and maintainer reply | Tapir | Fixed | |
| medium | ObjectValue equality compares only hash codes, so unequal objects can be equalCaliban ยท Wrong-result bugโ
993 stars Two response objects whose 32-bit hash codes collide compare equal even when their fields differ. Deduplication and deep merges can then drop or mix data. Full details and maintainer reply | Caliban | Fixed | |
| low | withExtension adds a second entry for a key and does not replace the firstCaliban ยท API-contract bugโ
993 stars If withExtension runs twice with the same key, the extensions hold two entries, which the spec does not allow. Serializers then disagree on which value wins. Full details and maintainer reply | Caliban | Fixed | |
| low | String and enum toString do not escape backslashes, tabs or carriage returnsCaliban ยท Wrong-result bugโ
993 stars The toString of StringValue escapes only quotes and newlines, and EnumValue only quotes. A backslash stays unescaped, so a JSON parser reads it as another value. Full details and maintainer reply | Caliban | Fixed | |
| high | Relay Connection reports wrong hasNextPage and hasPreviousPage with cursorsCaliban ยท Wrong-result bugโ
993 stars The page flags depend only on first or last, not on the after or before cursor. Clients that page forward from the middle see hasPreviousPage false and can miss earlier items. Full details and maintainer reply | Caliban | Fixed | |
| low | Single-root-field check for subscriptions runs only on the first subscriptionCaliban ยท Soundness bugโ
993 stars The validator finds one subscription operation and checks only that one. A later subscription with several root fields passes validation. Full details and maintainer reply | Caliban | Fixed | |
| low | Fragment validation cache keyed by hash can return a result for a different queryCaliban ยท Soundness bugโ
993 stars The memo caches use hash codes as keys with no equality check. A collision can make invalid queries pass or valid queries fail. Full details and maintainer reply | Caliban | Fixed | |
| low | Schema comparison reports unchanged directive arguments as changedCaliban ยท Diagnostics bugโ
993 stars When one argument of a directive changes, the check reports every other common argument as changed, because it runs per argument against the directive. Schema diffs get noisy. Full details and maintainer reply | Caliban | Fixed | |
| medium | Remote schema parsing always drops subscriptionsCaliban ยท Wrong-result bugโ
993 stars parseRemoteSchema hardcodes subscriptionType to None, so any subscription in a remote schema definition is lost. Stitched schemas lose their subscriptions. Full details and maintainer reply | Caliban | Fixed | |
| medium | Remote response unwrap keeps only the first field of a multi-field objectCaliban ยท Data-loss bugโ
993 stars RemoteResolver.unwrap returns only the first root field of a remote response. The other fields are lost in stitch pipelines without an error. Full details and maintainer reply | Caliban | Fixed | |
| low | SchemaTracer calls head on a field list that can be emptyCaliban ยท Crashโ
993 stars SchemaTracer.wrapper calls head on request.field.fields without an emptiness check. An empty list throws NoSuchElementException instead of producing a response. The fix uses headOption. Full details and maintainer reply | Caliban | Fixed | |
| medium | Schema reporting stops for good after one error and ignores the retry delayCaliban ยท Wrong-result bugโ
993 stars On a SchemaError, ReportingDaemon logs the error and ends its loop, so later schema reports never run. The retry hint in the error is not used. Full details and maintainer reply | Caliban | Fixed | |
| medium | atOrElse throws IndexOutOfBoundsException on a Seq for a missing indexquicklens ยท API-contract bugโ
852 stars If atOrElse modifies a List at a missing index, it throws, and the default is not used. It computes the default value but writes it back with updated, which needs an existing index. Full details and maintainer reply | quicklens | Fixed | |
| medium | Failed append still counts as an inserted node, so later child indices driftLaminar ยท Wrong-result bugโ
839 stars The Append branch sets the node count to one even when the DOM insert returns false. So each failed append shifts later insert indices, and the rendered children stop matching the model. Full details and maintainer reply | Laminar | Fixed | |
| medium | Failed DOM insert still updates the child's parent in Laminar trackingLaminar ยท Wrong-result bugโ
839 stars insertChildBefore and insertChildAfter set the parent after the raw DOM insert, whatever its result. So a failed insert leaves the child recorded under a parent it is not in. Full details and maintainer reply | Laminar | Fixed | |
| high | TMap.contains returns true for any key whenever the map is not emptyKyo ยท Wrong-result bugโ
822 stars The key argument is never used, so contains only checks whether the map has any entries. Lookups for keys that are not in the map return true. Full details and maintainer reply | Kyo | Fixed | |
| high | TMap.initWith builds the map and never runs the function passed to itKyo ยท Wrong-result bugโ
822 stars initWith ignores its function argument and returns the new map, so the user's code never runs. Its signature also drops the result type parameter. Full details and maintainer reply | Kyo | Fixed | |
| medium | Schedule.linear doubles its delays, so growth is exponential, not linearKyo ยท Wrong-result bugโ
822 stars The linear schedule adds the base to itself at each step, so delays double: 1, 2, 4, 8 seconds. Retry waits grow much faster than the name promises. Full details and maintainer reply | Kyo | Fixed | |
| medium | Subtype typeAnnotations returns the parent's parameter annotationsMagnolia ยท Wrong-result bugโ
800 stars If subtypesFromMirrorStep builds a Subtype, it passes the sealed trait's paramTypeAnns instead of the subtype's own annotations. A derived typeclass then sees the wrong annotations on a case class. Full details and maintainer reply | Magnolia | Fixed | |
| low | Monadic[Future].point submits a task to the pool, not a completed valueMagnolia ยท Concurrency bugโ
800 stars If point uses Future(value), each lift submits a task to the ExecutionContext. Unlike Future.successful, the Future does not complete at once, and a shut down or saturated pool delays or breaks it. Full details and maintainer reply | Magnolia | Fixed | |
| medium | MessagePack reader returns empty containers for lengths of 2^31 and aboveuPickle ยท Wrong-result bugโ
768 stars A 32-bit length of 2^31 or more wraps negative, so the array or map reads as empty and the reader ignores the payload that follows. Malformed input passes without any error. Full details and maintainer reply | uPickle | Reported | |
| low | JSON reader accepts invalid hex digits in unicode escapes and yields wrong charactersuPickle ยท Soundness bugโ
768 stars The reader accepts escapes such as u00gZ, uXXXX or u0G00, does not reject them, and decodes them to arbitrary code points. Malformed JSON then produces wrong text without an error. Full details and maintainer reply | uPickle | Reported | |
| medium | BigInt codec truncates negative values below the Long range during packAirframe ยท Data-loss bugโ
666 stars If pack receives a negative BigInt below Long.MinValue, the codec checks only the upper bound, so a different number gets stored without an error. The codec handles positive out-of-range values as intended. Full details and maintainer reply | Airframe | Reported | |
| high | Grouped GEMM computes rows past the end of each groupDeepGEMM-Ascend ยท Wrong-result bugโ
630 stars The last m-block of each group does not truncate, so rows past the group's valid rows get computed. The error affects group sizes that are not multiples of BLOCK_M. Full details and maintainer reply | DeepGEMM-Ascend | Reported | |
| medium | The docs call C the accumulator, but the kernel only uses its presenceDeepGEMM-Ascend ยท Wrong-result bugโ
630 stars The documented C += A @ B does not happen, because the kernel adds the product to whatever D holds. A C that is not the same tensor as D gives a wrong result with no error. Full details and maintainer reply | DeepGEMM-Ascend | Reported | |
| high | The Not implication rule encodes the inverse, so refined Int values can break boundsIron ยท Soundness bugโ
562 stars The Not[C1] implies Not[C2] rule encodes the inverse instead of the contrapositive, so a value that is at most 5 passes as at most 3. The compiler accepts an invalid refinement, and the value breaks the bound at runtime. Full details and maintainer reply | Iron | Fixed | |
| high | Collection implications such as ForAll to Exists compile though short lists break themIron ยท Soundness bugโ
562 stars Implications such as ForAll ==> Exists and Init ==> Head compile, but empty or one-element lists break the target constraint, so invalid values type-check. Full details and maintainer reply | Iron | Fixed | |
| medium | Long range constraints compare through Double and fail above 2^53Iron ยท Soundness bugโ
562 stars Greater, Less and Multiple on Long values compare through Double, so the checks reject or accept values above 2^53 in error. For example, 2^53 + 1 fails Greater of 2^53. Full details and maintainer reply | Iron | Fixed | |
| medium | Flow.range with a negative step emits only the first elementOx ยท Wrong-result bugโ
529 stars If the step is negative, the loop continues while t is at most the end value. range(5, 1, -1) stops after 5, but range(1, 5, -1) does not stop until Int overflow. Full details and maintainer reply | Ox | Fixed | |
| medium | AdaptiveRetry stops on a Left result when no failure cost appliesOx ยท Wrong-result bugโ
529 stars If shouldPayFailureCost returns false for a retriable error, afterAttempt stops the retry sequence. The Right case continues for free, so the documented free retry never happens. Full details and maintainer reply | Ox | Fixed | |
| low | Failure message suffix throws NullPointerException for exceptions without a messageMUnit ยท Diagnostics bugโ
472 stars munitAppendToFailureMessage calls endsWith on a null exception message. So a test that throws an exception without a message reports munit's NPE, not the original failure. Full details and maintainer reply | MUnit | Fixed | |
| high | The structured output reader picks a wrong fenced JSON blockhumanize ยท Wrong-result bugโ
381 stars If a reply has two JSON code blocks, the reader can return the later one without an error. A single JSON block with braces in the prose raises OutputSchemaError. Full details and maintainer reply | humanize | Fixed | |
| low | A hard token limit turns a graceful cost limit into a hard limithumanize ยท API-contract bugโ
381 stars If a flow adds a hard output token limit to a turn, the cost limit becomes hard too. The turn stops with CostExceeded, although the cost limit is graceful. Full details and maintainer reply | humanize | Fixed | |
| medium | A NaN model price makes the shared cost budget stop workinghumanize ยท Wrong-result bugโ
381 stars If a model price is NaN, the cost total becomes NaN for the epic. Later turns then exceed the hard cost limit without an error. Full details and maintainer reply | humanize | Fixed | |
| high | Q4_K dequantization uses the wrong scale for half of each blockgguf-tools ยท Wrong-result bugโ
373 stars The high-nibble weights of each Q4_K block use the scale and min of the earlier sub-block. The code dequantizes half of every Q4_K tensor with wrong values and gives no error. Full details and maintainer reply | gguf-tools | Reported | |
| high | gguf_get_tensor divides by zero on deprecated tensor types 4 and 5gguf-tools ยท Crashโ
373 stars Types q4_2 and q4_3 have zero items per block, so gguf_get_tensor divides by zero. The issue says this raises SIGFPE on x86 and gives a zero tensor size on arm64. Full details and maintainer reply | gguf-tools | Reported | |
| medium | A compiled file crashes with an internal anomaly when file numbers changeNarya ยท Crashโ
315 stars A compiled file with a match or let rec fails to load after a file number change, with anomaly Meta.Map.find_opt. The same files check fine from source. Full details and maintainer reply | Narya | Fixed | |
| low | Same file loads twice through different relative paths and causes a type errorNarya ยท API-contract bugโ
315 stars Imports with a parent-directory path are not reduced, so one file loads twice under two names. Constants from the two copies differ, so a valid file gets rejected with an unequal-constants error. Full details and maintainer reply | Narya | Fixed | |
| medium | Field projection from a transported tuple in 3D dimension raises an internal bugNarya ยท Crashโ
315 stars Field projection from a transport in a three-dimensional degeneracy of a record type raises bug E0500 on valid HoTT code. The program is correct, but Narya cannot check it. Full details and maintainer reply | Narya | Fixed | |
| medium | Unannotated definitions store normal-form types, which makes .nyo files hugeNarya ยท Hangโ
315 stars Without a type annotation, the .nyo file stores the synthesized type in normal form, which can grow as 3 to the power of the depth. One definition produced a 280 MB compiled file and slow imports. Full details and maintainer reply | Narya | Confirmed | |
| low | calc reverse-orientation check is slow because it builds a full error textNarya ยท Hangโ
315 stars When the forward check of a calc step fails, calc still builds the complete error text for it before it tests the reverse. Large types take 7.3 seconds and 1.7 GB instead of about 2.6 seconds. Full details and maintainer reply | Narya | Fixed | |
| medium | Writes of compiled .nyo files are not atomic, so concurrent runs breakNarya ยท Concurrency bugโ
315 stars A reader can load a .nyo file while another process still writes it, and an interrupted write leaves a broken file. With the `-source-only` option, the tool still writes compiled files, which can break other runs. Full details and maintainer reply | Narya | Fixed | |
| low | calc hides an internal bug raised by its forward checkNarya ยท Diagnostics bugโ
315 stars calc's error handler accepts any diagnostic, even internal bugs, from the forward check. If the reverse check passes, the internal error is never shown to the user. Full details and maintainer reply | Narya | Fixed | |
| medium | A compiled Narya file can refer to a constant of a different fileNarya ยท Wrong-result bugโ
315 stars A .nyo file keeps the file identifiers of the run that compiled it. In a later run, a definition can point to a constant of another file, or the load stops with an anomaly. Full details and maintainer reply | Narya | Fixed | |
| medium | Loading compiled Narya files takes exponential time with diamond importsNarya ยท Hangโ
315 stars Each level of diamonds in the import graph multiplies the load time of .nyo files. Sixteen levels take 212 s and 2.5 GiB of memory, for 49 small files. Full details and maintainer reply | Narya | Fixed | |
| medium | Repeat-until-success schedule never stops for an even repetition countGears ยท Hangโ
306 stars The retry counter advances by two, but the stop check expects one. So an even maxRepetitions never stops, and an odd one stops at about half the requested count. Full details and maintainer reply | Gears | Reported | |
| low | Uniform Long generator overflows on wide ranges and retries out-of-range valuesHedgehog ยท Wrong-result bugโ
268 stars The formula max - min + 2 overflows for wide ranges, and the offset can give values below min. The retry guard catches these, so the cost is extra retries rather than wrong values. Full details and maintainer reply | Hedgehog | Reported | |
| low | Take followed by a larger drop generates a negative LIMIT that some databases rejectScalaSQL ยท API-contract bugโ
259 stars A drop call with a count greater than the take count produces SQL with a negative LIMIT. PostgreSQL and MySQL reject that SQL, and SQLite reads it as no limit. Collections return an empty result. Full details and maintainer reply | ScalaSQL | Reported | |
| low | Upsert with no update assignments generates an incomplete DO UPDATE SET clauseScalaSQL ยท API-contract bugโ
259 stars An onConflictUpdate call with no assignments emits DO UPDATE SET with nothing after it, which is a syntax error. The API accepts the empty call without a compile error. Full details and maintainer reply | ScalaSQL | Confirmed | |
| medium | A None value always declares the JDBC type NULL, which some drivers rejectScalaSQL ยท Crashโ
259 stars The base dialect calls setNull with the NULL type code instead of the column's real type. MS SQL routes around this, but other drivers such as Oracle may reject the statement. Full details and maintainer reply | ScalaSQL | Confirmed | |
| medium | camelToSnake turns XMLParser into xmlparser, so acronym columns are not foundScalaSQL ยท Wrong-result bugโ
259 stars camelToSnake merges consecutive capitals into one word, so the default mapping of XMLParser or HTTPSConnection misses snake_case columns such as xml_parser. The query then fails with column not found. Full details and maintainer reply | ScalaSQL | Confirmed | |
| medium | WithCte.filter puts the WHERE clause inside the CTE, not the outer queryScalaSQL ยท Wrong-result bugโ
259 stars WithCte.filter swaps its arguments, so the WHERE clause lands in the CTE definition. Plain filters return the same rows, but filters applied after limits or aggregates on the CTE can change the result. Full details and maintainer reply | ScalaSQL | Confirmed | |
| medium | startsWith, endsWith and contains treat % and _ in user values as wildcardsScalaSQL ยท Wrong-result bugโ
259 stars The LIKE pattern concatenates the value and does not escape it. A search for 50% matches any string that starts with 50, and a_b matches axb, so untrusted input widens the match. Full details and maintainer reply | ScalaSQL | Confirmed | |
| medium | Identifier escape() does not escape a quote or bracket inside a nameScalaSQL ยท Security vulnerabilityโ
259 stars Table and column names that hold the dialect's delimiter break out of the quoted identifier. If such names come from untrusted data, they can alter the generated SQL. Full details and maintainer reply | ScalaSQL | Confirmed | |
| low | Truncation counts a CRLF line break as two linesPPrint ยท Wrong-result bugโ
248 stars The truncation counts the carriage-return and newline pair as two breaks, because it resets the flags before the pair check runs. Line counts in truncated output for Windows-style text are off by one per break. Full details and maintainer reply | PPrint | Reported | |
| low | Reader longCompare gives the wrong sign when the subtraction overflowsborer ยท Wrong-result bugโ
242 stars If longCompare compares a stored Long.MaxValue against Long.MinValue, the subtraction overflows and reports the reverse order. Full details and maintainer reply | borer | Fixed | |
| low | overlayAll error message shows the end position where the start should befansi ยท Diagnostics bugโ
237 stars If start is not less than end, the exception text repeats the end value instead of start, so the message shows wrong numbers. Only the message text is wrong, and only for invalid calls. Full details and maintainer reply | fansi | Reported | |
| medium | Equal multi-style values hash the same but compare unequal, so sets keep duplicatesfansi ยท API-contract bugโ
237 stars Multiple attribute values compare by reference in equals but by content in hashCode. Two equal values built in separate calls count as two members in a Set, so deduplication fails. Full details and maintainer reply | fansi | Reported | |
| medium | Async Either.forall returns false for Left instead of the stdlib's truedotty-cps-async ยท Wrong-result bugโ
194 stars Inside an async block, forall on a Left value returns false, while scala.util.Either returns true. Code that depends on the vacuous result gets the opposite answer without an error. Full details and maintainer reply | dotty-cps-async | Fixed | |
| medium | Async Try.recover throws MatchError when the partial function does not matchdotty-cps-async ยท Crashโ
194 stars When recover or recoverWith gets an exception the partial function does not handle, the async version throws MatchError and drops the original failure. The original error is lost. Full details and maintainer reply | dotty-cps-async | Fixed | |
| medium | Async `Using` leaks the resource when the body failsdotty-cps-async ยท Resource leakโ
194 stars The async version of `Using` releases the resource only on success. When the body fails, the resource is never closed, so each failure leaks a handle. Full details and maintainer reply | dotty-cps-async | Fixed | |
| medium | Async IndexedSeq indexWhere ignores its from argumentdotty-cps-async ยท Wrong-result bugโ
194 stars The IndexedSeq override accepts a from index but always starts the search at 0. A call like indexWhere(p, 3) can return an index before the requested start point. Full details and maintainer reply | dotty-cps-async | Fixed | |
| medium | Async Array dropWhile returns one element when every element matchesdotty-cps-async ยท Wrong-result bugโ
194 stars When the predicate matches all elements in an async block, dropWhile returns a one-element array instead of an empty one. The slice bound is off by one. Full details and maintainer reply | dotty-cps-async | Fixed | |
| medium | Async breakable never runs its body, so it skips side effectsdotty-cps-async ยท Wrong-result bugโ
194 stars The async breakable wrapper passes the monadic body to Breaks.breakable as a discarded value, so the body never runs. Effects inside the block do not happen and the call reports success. Full details and maintainer reply | dotty-cps-async | Fixed | |
| medium | Async lastIndexWhere throws IndexOutOfBounds when end is past the arraydotty-cps-async ยท Crashโ
194 stars Unlike the standard library, the async lastIndexWhere does not clamp end to the array size. If the caller sets an end larger than the array length, the call throws and does not search. Full details and maintainer reply | dotty-cps-async | Fixed | |
| medium | NonEmptyMap.map keeps duplicate keys and loses entries when converted to a MapHearth ยท Data-loss bugโ
166 stars When two keys map to the same new key, map keeps both entries, so size reports 2. toListMap keeps only the last value without an error, so the first entry is lost. Full details and maintainer reply | Hearth | Fixed | |
| low | Generated SQL identifiers keep embedded double quotes unescapedwvlet ยท Security vulnerabilityโ
158 stars doubleQuoteIfNecessary wraps non-plain identifiers in double quotes without escaping embedded quotes. A name with a quote yields malformed SQL. Full details and maintainer reply | wvlet | Fixed | |
| medium | Newlines inside triple-quoted string literals vanish from generated SQLwvlet ยท Wrong-result bugโ
158 stars TripleQuoteString.sqlExpr splits the literal on newlines and rejoins the parts with || without a newline. A multi-line string then becomes one run of text in the query output, with no error. Full details and maintainer reply | wvlet | Fixed | |
| medium | DuckDB schema analysis leaks a JDBC statement on every analysiswvlet ยท Resource leakโ
158 stars DuckDBSchemaAnalyzer creates a statement for schema analysis and never closes it, but it closes only the result set. In pooled setups, statements build up with each analysis until the connection closes. Full details and maintainer reply | wvlet | Fixed | |
| high | ONNX model outputs always load as None because a name filter never matchesonnx-scala ยท Wrong-result bugโ
151 stars The output-name filter compares a string with inner iterables, so it is always false. Model output reads return only None values for every model. Full details and maintainer reply | onnx-scala | Reported | |
| medium | A model with BOOL, STRING, UINT or FLOAT16 tensors fails to load with MatchErroronnx-scala ยท Crashโ
151 stars The tensor decoder handles only six ONNX data types and has no default case. A model whose initializers use another type fails to load with a scala.MatchError. Full details and maintainer reply | onnx-scala | Reported | |
| low | `Raise.catching` ignores exceptions that are subclasses of the target typeyaes ยท API-contract bugโ
140 stars If E is RuntimeException, the catch compares exception classes with ==, so an ArithmeticException escapes as a raw exception. The catch works when the exception class is E itself. Full details and maintainer reply | yaes | Fixed | |
| medium | Diagram drops the last step of a three-step interruption pathworkflows4s ยท Wrong-result bugโ
131 stars A diagram of a three-step interruption sequence omits the final step, because an off-by-one threshold keeps only the second step. The step still runs at execution time. Full details and maintainer reply | workflows4s | Fixed | |
| low | Diagrams draw a Loop that has not started as executedworkflows4s ยท Wrong-result bugโ
131 stars If a loop has only its unstarted body in its history, RenderUtils.hasStarted returns true. Diagrams then show the loop that has not run with the executed style, and other renderers inherit the wrong answer. Full details and maintainer reply | workflows4s | Fixed | |
| low | Signed add overflow check misses negative overflow, so MinValue plus -1 wrapsSoundness ยท Wrong-result bugโ
114 stars The addS family tests only positive overflow, so Long.MinValue plus -1 wraps to Long.MaxValue with no OverflowError, while unsigned add functions are correct. Full details and maintainer reply | Soundness | Fixed | |
| medium | Short ** Double truncates its result to a Short and gives wrong resultsSoundness ยท Wrong-result bugโ
114 stars The Short ** Double operator casts its Double result to Short, so (200: Short) ** 2.0 returns -25536 instead of 40000 and fractional results lose their fraction. Full details and maintainer reply | Soundness | Fixed | |
| medium | Byte and Short hex, octal and binary output sign-extends to 32 bitsSoundness ยท Wrong-result bugโ
114 stars A negative Byte or Short converts to hex, octal or binary through an Int. So 0xFF as a Byte prints ffffffff instead of ff, and binary output has 32 digits. Full details and maintainer reply | Soundness | Fixed | |
| medium | Float and Double modulo gives wrong results for a negative divisorSoundness ยท Wrong-result bugโ
114 stars The %% operator on Float and Double only corrects negative remainders for positive divisors, so 7.0 %% -3.0 returns 1.0 instead of -2.0, while the integer versions are correct. Full details and maintainer reply | Soundness | Fixed | |
| medium | A Rankine delta added to a Temperature uses the inverted 9/5 factorSoundness ยท Wrong-result bugโ
114 stars A Rankine quantity converts with 9/5 instead of 5/9 when added or subtracted. So 9 R added to 273.15 K gives 289.35 K instead of 278.15 K. Full details and maintainer reply | Soundness | Fixed | |
| low | Levenshtein distance is 0 when the left string is emptySoundness ยท Wrong-result bugโ
114 stars The edit distance loop never runs for an empty left string. So the distance between an empty string and abc is 0 instead of 3, and the normalized distance reports a perfect match. Full details and maintainer reply | Soundness | Fixed | |
| medium | Compass 8-point list has Southwest twice and no NorthwestSoundness ยท Wrong-result bugโ
114 stars Compass.points8 ends with Southwest instead of Northwest, so lookups in the northwest quadrant around 315 degrees return Southwest. Full details and maintainer reply | Soundness | Fixed | |
| high | CSV writer does not quote cells that contain the delimiter or line breaksSoundness ยท Data-loss bugโ
114 stars Dsv quotes only cells that hold a quote character. A cell with a comma or newline goes out raw, so the output splits into extra columns or rows when read back. Full details and maintainer reply | Soundness | Fixed | |
| high | Raster crop uses the bottom offset for the top edge and keeps wrong rowsSoundness ยท Wrong-result bugโ
114 stars crop(top = 10) keeps the wrong rows because the pixel mapping offsets Y by bottom instead of top. The crop comes out flipped, and no error appears. Full details and maintainer reply | Soundness | Fixed | |
| medium | Signal numbers are off by two and Hup gives -1Soundness ยท Wrong-result bugโ
114 stars The id formula on the Signal enum returns -1 for Hup. For other signals, it is two below the POSIX number, so an OS call that uses it targets the wrong signal or fails. Full details and maintainer reply | Soundness | Fixed | |
| high | Session store uses an unsynchronized HashMap shared across request threadsSoundness ยท Concurrency bugโ
114 stars Context keeps per-session values in a plain HashMap that concurrent HTTP threads access, so parallel requests can lose updates, throw ConcurrentModificationException or corrupt the map. Full details and maintainer reply | Soundness | Fixed | |
| medium | Long digest drops the top and bottom bytes, so distinct Longs can collideSoundness ยท Wrong-result bugโ
114 stars The Long Digestible uses shifts 52 down to 4 instead of 56 down to 0, so it hashes only seven misaligned bytes, and the Double instance inherits the loss. Full details and maintainer reply | Soundness | Fixed | |
| medium | Ordinal subsequent(size) returns one element more than requestedSoundness ยท Wrong-result bugโ
114 stars subsequent builds an interval one longer than size, so the Foreground and Background ANSI style bit fields in escapade overlap by one bit each. Full details and maintainer reply | Soundness | Fixed | |
| low | Two manifest attribute objects use the misspelled name SpecifacationSoundness ยท API-contract bugโ
114 stars SpecifacationVendor and SpecifacationVersion contain a typo, while SpecificationTitle is correct, so Scala code cannot refer to them by the expected names. The JAR manifest keys themselves are correct. Full details and maintainer reply | Soundness | Fixed | |
| low | Topological sort throws NoSuchElementException on cyclic inputSoundness ยท API-contract bugโ
114 stars Dag does not check for cycles when it adds edges. Sort calls get on the search result, so a cyclic graph fails with an unexplained NoSuchElementException, not a cycle error. Full details and maintainer reply | Soundness | Fixed | |
| medium | Semver comparison says equal versions are less and releases sort below prereleasesSoundness ยท Wrong-result bugโ
114 stars The comparator returns true for 1.0.0 against 1.0.0 and ranks 1.0.0 below 1.0.0-alpha, which breaks sorting and comparisons under the SemVer 2.0 precedence rules. Full details and maintainer reply | Soundness | Fixed | |
| medium | Coproduct serializer breaks for sealed types with 129 or more subtypesflink-scala-api ยท Crashโ
113 stars Writes and reads of the subtype index use a signed byte, so index 128 and up becomes negative. Deserialization then throws ArrayIndexOutOfBoundsException. Full details and maintainer reply | flink-scala-api | Confirmed | |
| medium | Qq match in a recursive partial def fails with a kernel errorquote4 ยท Crashโ
111 stars A partial def that matches a Qq pattern and recurses fails at kernel check with 'declaration has metavariables', on code the reporter expects to compile. The report gives no minimal reproducer. Full details and maintainer reply | quote4 | Reported | |
| low | Pooled connection validation failures never emit a debug messageldbc ยท Diagnostics bugโ
110 stars If validation fails or times out for a pooled connection, no debug message appears. The log effect gets created and then discarded, so pool problems leave no trace in the logs. Full details and maintainer reply | ldbc | Fixed | |
| low | Batch query builder breaks on a lowercase values keywordldbc ยท API-contract bugโ
110 stars If a clause uses lowercase values, MySQL rejects the combined statement with a syntax error, because the builder splits on uppercase VALUES only. Uppercase VALUES works. Full details and maintainer reply | ldbc | Fixed | |
| medium | Statement.execute throws a MatchError for SHOW, DESCRIBE and EXPLAINldbc ยท Crashโ
110 stars Statement.execute treats only SELECT as a query. If SHOW, DESCRIBE, EXPLAIN or a similar statement returns rows, it throws MatchError and gives no results. Full details and maintainer reply | ldbc | Fixed | |
| medium | Code generation maps MEDIUMBLOB columns to TINYBLOBldbc ยท Wrong-result bugโ
110 stars If a schema contains mediumblob, the parser builds a TINYBLOB type. Generated DDL and Scala mappings then allow only 255 bytes for columns meant to hold up to 16 MB. Full details and maintainer reply | ldbc | Fixed | |
| medium | ResultSet.isFirst returns true for every row after the firstldbc ยท Wrong-result bugโ
110 stars isFirst checks that the cursor position is greater than zero. If the cursor is on row two or later, it returns true, so code that branches on isFirst misbehaves. Full details and maintainer reply | ldbc | Fixed | |
| medium | Text-protocol string escape misses NUL, newline and other charactersldbc ยท Security vulnerabilityโ
110 stars The text-protocol escape handles only quotes and backslashes, in the wrong order, so NUL, CR, LF and Ctrl-Z stay raw. If an attacker controls a string on that path, it can break out of the literal. Full details and maintainer reply | ldbc | Fixed | |
| high | Code generation maps DOUBLE and REAL columns to FLOAT and loses precisionldbc ยท Wrong-result bugโ
110 stars The schema parser has no DOUBLE type, so DOUBLE and REAL columns become FLOAT. Generated Scala code then uses 32-bit Float for 64-bit values, and the precision loss gives no error. Full details and maintainer reply | ldbc | Fixed | |
| medium | Chained TLS builder calls drop the earlier settingldbc ยท Wrong-result bugโ
110 stars If a builder chains withTLSParameters with withFallback in either order, it resets the setting applied first without an error. The connection then uses default TLS parameters or the wrong fallback policy. Full details and maintainer reply | ldbc | Fixed | |
| medium | Charset version check reverses its test, so it drops gb18030 on MySQL 8ldbc ยท Wrong-result bugโ
110 stars isOkayForVersion reverses the version comparison, so on MySQL 8 it drops gb18030, eucjpms and cp932 and offers them to servers that lack them. Only apps that rely on these charsets see the fault. Full details and maintainer reply | ldbc | Fixed | |
| low | Schema DSL rejects VARCHAR lengths above 255ldbc ยท API-contract bugโ
110 stars The VARCHAR check uses the CHAR limit, so VARCHAR(500) fails to compile, although MySQL allows up to 65,535 bytes. Full details and maintainer reply | ldbc | Fixed | |
| medium | Circuit breaker lets many test requests through in half-open stateldbc ยท Concurrency bugโ
110 stars If several concurrent calls enter the half-open state after the reset timeout, they can all run the test action. A success can then close the breaker, even though a concurrent test has failed. Full details and maintainer reply | ldbc | Fixed | |
| high | Pool resetConnection commits the unfinished transaction of a returned connectionldbc ยท Data-loss bugโ
110 stars If resetConnection turns autocommit on before it rolls back, MySQL commits the pending transaction at that point. Half-written data from an unhandled error gets persisted instead of discarded. Full details and maintainer reply | ldbc | Fixed | |
| low | The cp850 charset declares two bytes per character, not oneldbc ยท Wrong-result bugโ
110 stars The charset table gives cp850 a maximum length of 2 bytes per character, but cp850 is single-byte. Buffer size and the single-byte fallback branch then take the wrong path. Full details and maintainer reply | ldbc | Fixed | |
| low | NonNegativeInterval hashCode ignores reduced form, so hash sets breakScalus ยท API-contract bugโ 57k / moโ
106 stars equals compares reduced fractions but hashCode uses the raw fields, so 2/4 equals 1/2 yet they have different hashes, and HashSet or HashMap lookups miss equivalent intervals. Full details and maintainer reply | Scalus | Fixed | |
| medium | BLS12-381 point wrappers override equals but not hashCodeScalus ยท API-contract bugโ 57k / moโ
106 stars G1Element, G2Element and MLResult override equals by curve point but keep the identity hashCode. Equal points get different hashes, so HashSet and HashMap lookups miss them. Full details and maintainer reply | Scalus | Fixed | |
| medium | Bytes overrides equals but not hashCode, so HashMap lookups miss equal keysgeny ยท API-contract bugโ
98 stars Two Bytes objects built from the same array compare equal but have different hash codes. Map keys or set members give lookup misses for values that are equal. Full details and maintainer reply | geny | Reported | |
| medium | maxBy and minBy return null or zero for an empty generator, without an errorgeny ยท Wrong-result bugโ
98 stars Unlike min and max, maxBy and minBy return null for reference types and zero for numeric types on an empty generator. The caller gets a placeholder with no error. Full details and maintainer reply | geny | Reported | |
| medium | Markdown decision table rows get one column too few when some rules lack annotationsdecisions4s ยท Wrong-result bugโ
85 stars When at least one rule has an annotation, rules without one produce rows with fewer cells than the header. Downstream tools may corrupt the malformed Markdown table, but the HTML renderer is fine. Full details and maintainer reply | decisions4s | Confirmed | |
| low | Distinct hit policy treats +0.0 and -0.0 as the same outputdecisions4s ยท Wrong-result bugโ
85 stars The Distinct hit policy deduplicates outputs with a Set, and Double equality treats positive and negative zero as equal. A table with +0.0 and -0.0 outputs returns a result instead of reporting a conflict. Full details and maintainer reply | decisions4s | Fixed | |
| low | The diagnostics printer throws at construction for a table with no input fieldsdecisions4s ยท Crashโ
85 stars A constant decision table with zero input columns makes DiagnosticsPrinter throw on max of an empty collection during construction. The crash happens before the printer outputs any diagnostic. Full details and maintainer reply | decisions4s | Reported | |
| medium | Lineage JSON export is invalid when names contain quotes or backslashesetl4s ยท API-contract bugโ
81 stars The JSON helper wraps strings in quotes without escaping them. A name or description with a double quote or backslash, or an input with a newline, makes the lineage JSON unparseable. Full details and maintainer reply | etl4s | Confirmed | |
| low | Lineage chain and combine return identical lineages despite different doc commentsetl4s ยท Specification gapโ
81 stars chain and combine have identical bodies, but their doc comments describe sequential and parallel use. The maintainer says the shared accumulating design is intended, and the docs confuse users. Full details and maintainer reply | etl4s | Confirmed | |
| critical | lrat-check reports VERIFIED for a proof that proves nothingDRAT-trim ยท Soundness bugโ
73 stars On a satisfiable formula, the checker accepts the one-line proof 2 0 0 and prints VERIFIED with exit code 0, a regression from an earlier commit. A second proof also segfaults the checker. Full details and maintainer reply | DRAT-trim | Reported | |
| low | The snapshot representation drops the ESC character and hides ANSI differencessnapshot4s ยท Wrong-result bugโ
69 stars If InlineRepr.printChar maps the ESC character to an empty string, strings with colour codes snapshot as bracketed plain text. Two strings that differ only by ESC compare equal. Full details and maintainer reply | snapshot4s | Reported | |
| low | Circe encoder emits record fields in hash order, not declaration orderrecord4s ยท API-contract bugโ
68 stars If a record has more than four fields, the circe encoder builds a hash Map, so JSON fields come out in hash order, not declaration order. The order can also differ between Scala versions. Full details and maintainer reply | record4s | Reported | |
| low | Code generator throws divide-by-zero when the known divisor is zerostrymonas ยท Crashโ
56 stars If a known divisor is zero at staging time, int_div and long_div fold the division at once and the macro crashes with ArithmeticException. int_mod already has a guard for a related case. Full details and maintainer reply | strymonas | Reported | |
| high | Cooked.collect returns the stream elements in reverse orderstrymonas ยท Wrong-result bugโ
56 stars If collect runs on a stream, it builds the list with each new element at the front. The elements come back in reverse, so every result has the wrong order, and one reverse call fixes it. Full details and maintainer reply | strymonas | Reported | |
| low | zipWithIndex keeps its counter across runs of the same streamUnwrapped ยท Wrong-result bugโ
40 stars The index variable sits outside the stream body. If a second run consumes the same stream, the index continues from the first run instead of at zero. Full details and maintainer reply | Unwrapped | Reported | |
| low | PutPartiallyApplied equals throws ClassCastException for values of other typesUnwrapped ยท Crashโ
40 stars If code compares this object with another type or with null, equals throws and does not return false, because it casts without checking canEqual. Sibling classes do the canEqual check. Full details and maintainer reply | Unwrapped | Reported | |
| medium | RabbitMQ config ignores automaticTopologyRecovery, so a false value has no effectPillars ยท Wrong-result bugโ
33 stars The config conversion does not copy automaticTopologyRecovery to the client config. The client still recovers topology when the user disables the setting. Full details and maintainer reply | Pillars | Reported | |
| low | Server drops the recorder IO, so the response body size metric never recordsPillars ยท Wrong-result bugโ
33 stars The server-side recorder builds the metric effect inside Option.foreach, so the effect never runs. The response body size histogram stays empty. Full details and maintainer reply | Pillars | Reported | |
| low | Redaction strategy encodes as OptIn while its decoder expects optinPillars ยท API-contract bugโ
33 stars The encoder writes OptIn in mixed case, while every other value is lowercase and the decoder lowercases input. The decode error for an unknown value also names an SSL mode. Full details and maintainer reply | Pillars | Reported | |
| low | The HTTP client declares body size histograms but never writes themPillars ยท Wrong-result bugโ
33 stars The client metrics middleware declares request and response body size histograms but never records them. Dashboards show empty panels, and nothing warns at startup. Full details and maintainer reply | Pillars | Reported | |
| low | The config encoder throws MatchError on a custom SSL contextPillars ยท Crashโ
33 stars The SSL encoder covers three cases, so a custom SSL context fails with scala.MatchError, for example in a config dump. The decoder also cannot read it back. Full details and maintainer reply | Pillars | Reported | |
| medium | Doobie config drops the system schema, app schema and debug settingsPillars ยท Wrong-result bugโ
33 stars toHikariConfig ignores systemSchema, appSchema and debug, so queries use the default schema and debug logging stays off. Users who set these values get different behaviour without any warning. Full details and maintainer reply | Pillars | Reported | |
| low | The leaderboard deploy fails in the Lake dependency steplean-eval-leaderboard ยท Build bugโ
29 stars The deploy step runs lake update, which fails on local refs. The public site then shows data from October 14. Full details and maintainer reply | lean-eval-leaderboard | Fixed | |
| medium | LP migration reads the price from a pool with the wrong tick spacingAero ยท Security vulnerability When creating a cross-tier pool, LpMigrator looks up the source price using the destination tick spacing. Manipulating that unrelated pool can make the migration lose principal; the report demonstrates a 1.817% loss. Full details and maintainer reply | Aero | Confirmed | |
| low | A new referral diverts rewards accrued before the referral existedAero ยท Security vulnerability CLGauge reads the current referral configuration when rewards are claimed and applies it to the entire unclaimed amount. Creating a referral therefore takes a share of rewards that accrued before it existed. Full details and maintainer reply | Aero | Confirmed |