Every captured commit receives deterministic security triage and a separate communication-quality score. Security candidates and broader second-pass signals receive full-patch Ollama analysis.
Message quality measures whether a commit identifies its scope, purpose, rationale, testing, and supporting references. It does not change the security-severity score.
This is a routine automated update by Dependabot that bumps the version of a JavaScript build tool called browserslist, used only in the WebAssembly packaging part of the project. The change only updates version numbers and metadata in a l…
This is a routine automated update by Dependabot that bumps the JavaScript helper library fast-uri from version 3.1.5 to 3.1.7 inside the WebAssembly packaging directory. The commit itself only changes a package-lock.json file and does not…
Dependency update for a known URI-parsing libraryfast-uri 3.1.7 is associated with a fix for a malformed-URI parsing issue (CVE-2025-24035)Only package-lock.json changed; no application code modified
This commit changes a library function so that it now returns an error when a PSBT/PSET input amount is missing, instead of silently returning zero. It also adds a new 'has_input_amount' check so callers can ask whether the value exists be…
API behavior change: missing field now returns error instead of default zeroAdds presence-check accessor to prevent callers from reading unset valuesABI break noted by vendor
This commit changes a library function so that it returns an error when asked for an output amount that is not actually present, instead of silently returning zero. This prevents callers from accidentally treating a missing amount as a rea…
API now distinguishes 'missing amount' from 'amount is zero' via explicit error codePresence check (has_amount) is enforced before returning sensitive numeric valueTest updated to assert exception when fetching amount on blinded output
This commit tightens how the library reads PSBT (Partially Signed Bitcoin Transaction) data. It adds a new parsing flag that requires the parser to consume the entire input, and turns that flag on automatically when reading base64-encoded …
New strict-input-consumption parse flag addedBase64 decoder now enforces complete input consumption automaticallyTrailing bytes after a valid PSBT now rejected in COMPLETE mode
This is an automated dependency update by Dependabot that bumps the JavaScript package fast-uri from version 3.1.4 to 3.1.5 inside the WebAssembly packaging directory. The change only updates version numbers and package hashes in package-l…
This commit fixes a missing safety check in libwally-core's AES encryption/decryption function. Previously, callers could pass an output buffer smaller than the input data, which could lead to writing past the end of the buffer (a buffer o…
Missing length check enabling potential buffer overflowOut-of-bounds write risk in symmetric crypto routineReported by independent external researcher
This commit fixes a Java language binding bug where a function that reads a Bitcoin transaction output amount was incorrectly declared to return a 'size' type (a memory/length value) instead of an unsigned 64-bit integer. Output amounts in…
Incorrect JNI/SWIG return type for cryptographic/monetary valuePotential integer truncation of PSBT output amountType confusion between size_t and uint64_t in language bindings
This commit adds a new public-key compression function to a cryptographic library and updates the existing decompression function so both can accept already-compressed or already-uncompressed keys as input. It also adds tests and language …
This commit only adds new test cases to check that the library correctly rejects malformed cryptographic signatures. It does not change any production code, so by itself it cannot introduce or fix a security vulnerability. It may be relate…
DER signature parsing validation is being exercisedTest vectors include R/S overflow and zero R/S casesNo functional code change in this commit
This commit tightens signature validation in a cryptographic library. It now rejects malformed DER-encoded signatures that are longer than allowed, or where one of the signature numbers (R or S) is zero. Previously, the underlying secp256k…
Cryptographic input validation hardeningRejection of overlong DER-encoded ECDSA signaturesRejection of zero R or S signature components
This commit adds a new public API to libwally-core that lets users derive BIP32 keys directly from a parsed Bitcoin/Elements descriptor. It also fixes two consistency bugs in how descriptor keys are looked up: it now correctly routes reque…
New API exposes derivation of private BIP32 keys from descriptors; misuse by callers could leak private key materialSLIP77 blinding keys are returned in the private-key field of an ext_key, which may surprise callers and lead to incorrect handlingRefactoring of generate_script changes the public-key extraction offset logic from a conditional x-only offset to EC_PUBLIC_KEY_LEN - output_len; this is intended to be equivalent but is a sensitive crypto code path
This is an automated update by Dependabot that bumps the JavaScript helper library fast-uri from version 3.1.2 to 3.1.4 inside the WebAssembly packaging directory. It only changes a package-lock.json file and is marked as a development dep…
Dependency version bump of fast-uri (indirect devDependency)No changes to libwally-core native/WASM cryptographic codeNo vendor security advisory or CVE referenced in commit message
This commit is a routine version bump from 1.5.5 to 1.5.6. It only changes version numbers in build files, documentation, and package metadata. There are no code changes that affect security or functionality.
This commit only updates the project's changelog file (CHANGES.md) to document what is included in the upcoming 1.5.6 release. It does not change any source code, build scripts, tests, or documentation that affects how the software runs. T…
This commit fixes a parsing bug in libwally-core's Bitcoin descriptor handling. Previously, if extra characters appeared after a valid nested expression inside parentheses, the parser silently ignored them. For example, 'wsh(pk(KEY)xyz)' w…
Input validation bypass: parser accepted malformed descriptors with trailing garbageSilent truncation/misinterpretation of user-supplied descriptor stringsPotential for consensus or policy mismatch between systems parsing the same descriptor
This commit tightens validation for Bitcoin descriptors that wrap a miniscript inside sh() (pay-to-script-hash) or wsh() (pay-to-witness-script-hash). Previously, the library accepted any miniscript fragment as the top-level child, even fr…
Input-validation hardening for descriptor parsingRejection of non-top-level miniscript fragments in script wrappersNew negative test vectors for malformed descriptors
This commit is just a changelog update for libwally-core version 1.5.5. It mentions that the release 'de-optimizes some memcpy calls on x86 to prevent leaks via extended registers.' That wording suggests a security-sensitive fix, but the a…
Changelog entry describes a security-motivated fixMentions prevention of information leaks via CPU extended registersRelates to secure memory handling of cryptographic secrets
This commit is a routine version bump from 1.5.4 to 1.5.5 across build files, documentation, and package metadata. It changes only version strings and the build version constant; no code logic is modified.
This commit only changes the project's continuous integration (CI) configuration. It re-enables a set of tests called 'clear tests' that were previously disabled in automated build pipelines, and adds a compiler warning suppression for an …
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Mentions testing or verification! No meaningful explanatory body
AI analysis · Informational 15/100
This commit only changes the project's continuous integration (CI) configuration. It re-enables a set of tests called 'clear tests' that were previously disabled in automated build pipelines, and adds a compiler warning suppression for an amalgamation compile test. There is no change to the actual library code that users run, so this commit does not introduce or fix a security vulnerability in the software itself.
Security candidateinternal: avoid potential info leaks via sse/avx registersby Jon Griffiths · 91b3b6d6 · Jul 9, 2026 · 10 filesMessage 73 · AdequateModerate 68Details
Commit message · Jon Griffiths
internal: avoid potential info leaks via sse/avx registers
In particular when built as a shared library, calls through the PLT spill these registers onto the stack.
Thanks to @pythcoiner <pythcoiner@proton.me> for identifying the leak cause and suggesting a fix.
73/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
Why it was queued
cryptography-sensitive path
AI analysis · Moderate 68/100
This commit fixes a potential information leak in a cryptocurrency wallet library. When the library is built as a shared library on x86/x86_64 systems, optimized memory-copy functions can leave secret data (private keys, seed phrases, chain codes) inside special CPU registers (SSE/AVX). If the program then makes a call through the dynamic linker before those registers are reused, the CPU spills the register contents onto the stack, where they may remain uncleared. The patch replaces many ordinary memory copies with a simple, unoptimized byte-by-byte copy function for sensitive data, preventing the data from being left in those registers. The commit message explicitly calls this an 'info leak' and thanks an external contributor for finding the cause and suggesting the fix.
✓ Descriptive subject✓ Names a concrete action or component✓ Mentions testing or verification! No meaningful explanatory body
AI analysis · Informational 12/100
This commit only adds new test cases to an existing test file. It does not change any production code, fix a bug, or alter behavior. The tests check whether sensitive secret bytes are cleared from the call stack after using certain cryptographic functions, which is a defensive security practice, but the commit itself is purely a testing improvement.
Lower-priorityinternal: mark internal functions as hidden visibility when possibleby Jon Griffiths · 2d36c91d · Jul 9, 2026 · 5 filesMessage 73 · AdequateLow 47Details
Commit message · Jon Griffiths
internal: mark internal functions as hidden visibility when possible
Even when building with -fvisibility=hidden, some internal functions (those that aren't static and thus provably limited to a single compilation unit) are not marked hidden. As a result, calls to them from within the library are routed through the PLT. This can result in register data containing secrets/partial secrets being spilled to the stack.
Mark such internal functions as hidden so internal calls to them avoid the PLT call mechanism.
73/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
AI analysis · Low 47/100
This change is a hardening patch for a cryptocurrency wallet library. It tells the compiler to keep certain internal helper functions private to the library, so calls to them stay inside the library instead of going through an external lookup table (the PLT). The commit message says the old route could cause CPU register values containing secret key material to be temporarily saved to the stack, where they might be more easily exposed in a crash dump or memory leak. The patch reduces that risk but does not by itself fix a specific, independently reported vulnerability.
node_get_child_count() iterates all keys which we then immediately do again below. Count the children as we iterate checking the keys instead.
Co-authored-by: odudex <odudex@proton.me>
68/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
AI analysis · Informational 12/100
This is a small code cleanup in how a Bitcoin descriptor function counts child nodes. It removes a redundant loop and counts children while already checking them. There is no visible security bug being fixed—just an efficiency and clarity improvement.
AI review queuedBump version to 1.5.4by Jon Griffiths · c5591834 · Jun 16, 2026 · 9 filesMessage 38 · OpaqueInformational 15Details
Commit message · Jon Griffiths
Bump version to 1.5.4
38/100 · OpaqueMessage clarity
✓ Subject identifies a change✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
second-pass: opaque commit message
AI analysis · Informational 15/100
This commit is a routine version bump from 1.5.3 to 1.5.4 across build files, documentation, and package metadata. It changes only version strings and constants; no code logic is modified. There is no security-relevant content in the diff.
Lower-prioritybuild: bump dso version for 1.5.4by Jon Griffiths · f5b4055b · Jun 16, 2026 · 1 fileMessage 57 · ThinInformational 15Details
Commit message · Jon Griffiths
build: bump dso version for 1.5.4
57/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
AI analysis · Informational 15/100
This commit is a routine build-system version bump. It changes one number in a Makefile from 0 to 1 so the shared library reports version 1.5.4 instead of 1.5.3. There is no code change, no bug fix, and no security relevance visible in the diff.
Lower-priorityupdate CHANGES.md for release 1.5.4by Jon Griffiths · cea4227f · Jun 16, 2026 · 1 fileMessage 45 · ThinInformational 15Details
Commit message · Jon Griffiths
update CHANGES.md for release 1.5.4
45/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
documentation-only discount
AI analysis · Informational 15/100
This commit only updates the project's changelog file (CHANGES.md) to document what is included in the upcoming 1.5.4 release. No actual source code, build scripts, or configuration files were changed. It is a documentation-only release-notes update.
Lower-priorityci: update ci imageby Jon Griffiths · a212c0d3 · Jun 16, 2026 · 1 fileMessage 40 · ThinInformational 15Details
Commit message · Jon Griffiths
ci: update ci image
40/100 · ThinMessage clarity
✓ Subject identifies a change✓ Uses a recognizable type or scope! No meaningful explanatory body
AI analysis · Informational 15/100
This commit simply swaps the Docker image used by the project's automated CI (continuous integration) pipeline to a newer version. There is no change to the actual library code, no user-facing behavior change, and no security-relevant signal visible in the diff.
Lower-prioritydocker: update trixie base imageby Jon Griffiths · 112c0ff3 · Jun 16, 2026 · 1 fileMessage 45 · ThinInformational 15Details
Commit message · Jon Griffiths
docker: update trixie base image
45/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
AI analysis · Informational 15/100
This commit simply updates the pinned SHA256 digest of the Debian 'trixie' base Docker image used for building and testing. It is a routine dependency refresh with no code changes and no security-relevant content described by the project.
Lower-priorityelements: align unblinding with the elements implby Jon Griffiths · d8153d1c · Jun 16, 2026 · 1 fileMessage 45 · ThinModerate 59Details
Commit message · Jon Griffiths
elements: align unblinding with the elements impl
45/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
AI analysis · Moderate 59/100
This commit tightens the unblinding process for confidential asset transactions in the Elements/Liquid sidechain. Previously, the code blindly trusted the decrypted message and did not verify that the extracted asset ID and blinding factor actually match the original cryptographic commitments. The patch adds verification steps: after decryption it re-derives the asset generator and value commitment and compares them to the inputs. If they do not match, it clears the sensitive outputs and returns an error. This prevents a class of attacks where a malicious or malformed blinded output could make the wallet accept an incorrect asset ID or amount.
Lower-priorityjava: only set source level to 17 if supported by javacby Jon Griffiths · 71fd4c4c · May 28, 2026 · 1 fileMessage 50 · ThinInformational 18Details
Commit message · Jon Griffiths
java: only set source level to 17 if supported by javac
50/100 · ThinMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
AI analysis · Informational 18/100
This commit changes the Java build configuration so that it falls back to Java 8 source compatibility when the compiler does not support Java 17, instead of unconditionally requiring Java 17. It is a build-system compatibility fix, not a security patch.
Lower-priorityjs: update github build to ubuntu 24.04by Jon Griffiths · 4976dc48 · May 28, 2026 · 1 fileMessage 45 · ThinInformational 15Details
Commit message · Jon Griffiths
js: update github build to ubuntu 24.04
45/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
documentation-only discount
AI analysis · Informational 15/100
This commit simply updates the GitHub Actions workflow that builds the JavaScript/WebAssembly package. It changes the build runner from Ubuntu 22.04 to Ubuntu 24.04 and switches the dependency installation script from one named for Debian 'bullseye' to one named for 'trixie'. There is no code change affecting users, no security fix, and no vulnerability introduced.
Lower-prioritybuild: remove abandoned msvc-dev-cmd from window wheel buildby Jon Griffiths · 53452d74 · May 28, 2026 · 1 fileMessage 62 · AdequateInformational 15Details
Commit message · Jon Griffiths
build: remove abandoned msvc-dev-cmd from window wheel build
62/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
Why it was queued
documentation-only discount
AI analysis · Informational 15/100
This commit swaps one way of setting up Microsoft's C++ compiler on Windows in the project's automated wheel-building workflow. It replaces a third-party GitHub Action (msvc-dev-cmd) with a direct call to a Microsoft-provided batch file on the runner. There is no code change that affects the library's behavior, its cryptography, or how it handles user input.
Lower-prioritybuild: add python 3.14 support, disable 3.15 while in betaby Jon Griffiths · 11c7da3e · May 28, 2026 · 1 fileMessage 62 · AdequateInformational 15Details
Commit message · Jon Griffiths
build: add python 3.14 support, disable 3.15 while in beta
62/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
Why it was queued
documentation-only discount
AI analysis · Informational 15/100
This commit is a routine build configuration update. It changes one line in the project's wheel-building workflow so that Python 3.14 wheels are now built and Python 3.15 wheels are skipped while Python 3.15 is still in beta. There is no security relevance in the change itself.
Lower-prioritybase64: fix -Wunterminated-string-initialization warningsby Jon Griffiths · cb95fe3f · May 28, 2026 · 1 fileMessage 50 · ThinInformational 15Details
✓ Specific, descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
AI analysis · Informational 15/100
This commit changes how two fixed lookup tables are written in the source code for the base64 encoding/decoding module. The old form used long string literals made of many hex escape characters; the new form lists individual characters/bytes inside braces. The commit message says the purpose is to silence a compiler warning about unterminated string initialization. The data values in the tables are identical before and after, so this is a code-style/maintenance change, not a security fix.
Note this means that java v20+ is now required for testing.
70/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides an explanatory body✓ Mentions testing or verification
AI analysis · Informational 15/100
This is a small build/test configuration change for Java tests. It adds a Java command-line option that suppresses a warning when native (non-Java) libraries are loaded during testing. The change only affects how tests are run and requires Java 20 or newer. There is no indication it fixes or introduces a security vulnerability.
Lower-priorityjava: update source and target version to 17by Jon Griffiths · 53d900a9 · May 28, 2026 · 1 fileMessage 60 · AdequateInformational 16Details
Commit message · Jon Griffiths
java: update source and target version to 17
Fixes the obsolete version warning when building.
60/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides an explanatory body
AI analysis · Informational 16/100
This commit simply changes the Java compiler target version from 1.8 to 17 in the build configuration. It is a routine build hygiene change to silence an obsolete-version warning and does not alter any program logic, cryptographic code, or security behavior.
Lower-prioritybuild: build wheel and sdist separatelyby Jon Griffiths · 05bfee5d · May 28, 2026 · 1 fileMessage 90 · StrongInformational 12Details
Commit message · Jon Griffiths
build: build wheel and sdist separately
Something in the secp aux macros breaks when building the sdist and wheel at the same time. Build them separately to work around this.
Note that we only want the sdist artifact; the wheel is just used for smoke testing before producing the sdist.
90/100 · StrongMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides detailed explanatory context✓ Mentions testing or verification
AI analysis · Informational 12/100
This commit changes the project's automated build script so that Python wheel and source distribution packages are built in two separate steps instead of one combined step. The commit message says this is a workaround because something in the secp256k1 auxiliary macros breaks when both are built together. The wheel is only used for a quick smoke test; the final artifact they keep is the source distribution. There is no indication this is a security fix.
Lower-priorityci: factor out common test config, rebuild wallycore docker imageby Jon Griffiths · d601cbd5 · May 28, 2026 · 1 fileMessage 72 · AdequateInformational 15Details
Commit message · Jon Griffiths
ci: factor out common test config, rebuild wallycore docker image
72/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Mentions testing or verification! No meaningful explanatory body
AI analysis · Informational 15/100
This commit only reorganizes the project's GitLab CI configuration file. It creates a shared template for test jobs and updates the Docker image used for testing to a newer version. There are no changes to the actual library code, cryptographic logic, or any files that end users install.
Lower-prioritytests: use the (now) already-installed gcovr binaryby Jon Griffiths · c153347c · May 27, 2026 · 1 fileMessage 60 · AdequateInformational 15Details
Commit message · Jon Griffiths
tests: use the (now) already-installed gcovr binary
60/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Mentions testing or verification! No meaningful explanatory body
AI analysis · Informational 15/100
This is a tiny CI (continuous integration) maintenance change. It removes a redundant pip install command for a code-coverage tool called gcovr, because that tool is now pre-installed in the test environment. There is no change to the actual library code, cryptography, or anything users interact with.
AI review queuedcmake: add missing definesby Jon Griffiths · be278177 · May 27, 2026 · 2 filesMessage 35 · OpaqueLow 32Details
Commit message · Jon Griffiths
cmake: add missing defines
35/100 · OpaqueMessage clarity
✓ Descriptive subject! No meaningful explanatory body
Why it was queued
second-pass: opaque commit message
AI analysis · Low 32/100
This commit fixes the CMake build system so it correctly detects several platform features and headers that the library's C code relies on. Before this fix, the CMake build could silently produce a misconfigured library that uses less secure fallback code paths (for example, missing secure memory-zeroing functions or unaligned-access handling). The commit does not change the core cryptographic code itself; it only changes how the build system discovers what the current platform supports.
Lower-priorityci: update scan-build, asan and valgrind for trixieby Jon Griffiths · 5adb8acc · May 27, 2026 · 1 fileMessage 87 · StrongInformational 15Details
Commit message · Jon Griffiths
ci: update scan-build, asan and valgrind for trixie
Run valgrind tests on the test binaries not the libtool wrapper scripts.
87/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides an explanatory body✓ Mentions testing or verification
AI analysis · Informational 15/100
This commit is a routine update to the project's automated testing configuration for newer Debian 'trixie' tooling versions. It changes CI paths from older GCC 10/Clang 11 tool versions to newer GCC 14/Clang 19 versions, and adjusts the Valgrind test step to run directly on compiled test binaries instead of libtool wrapper scripts. There is no change to the actual library source code, no bug fix, and no security patch.
Lower-prioritybuild: re-apply: don't require linking to work for manylinux buildsby Jon Griffiths · 5d9149b1 · May 27, 2026 · 1 fileMessage 62 · AdequateInformational 15Details
Commit message · Jon Griffiths
build: re-apply: don't require linking to work for manylinux builds
62/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
AI analysis · Informational 15/100
This commit changes the build configuration so that when building Python packages for 'manylinux' (a standard for portable Linux Python wheels), a failed link check against libpython is ignored. This is a build-system workaround, not a code change, and it does not alter cryptographic behavior, memory handling, or runtime security.
Lower-prioritybuild: run swig python tests lastby Jon Griffiths · a2804b36 · May 27, 2026 · 1 fileMessage 100 · StrongInformational 15Details
Commit message · Jon Griffiths
build: run swig python tests last
Since the swig python tests were updated to build the python wheel using setup.py, 'make check' has issues due to the wheel build reconfiguring the source tree when being built while the other tests are running.
Change this to run all other tests before the swig python tests; This fixes 'make check' including for parallel builds.
100/100 · StrongMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides detailed explanatory context✓ Explains rationale or failure mode✓ Mentions testing or verification
AI analysis · Informational 15/100
This commit is a build-system fix that changes the order in which automated tests run during 'make check'. It moves the Python wheel-building tests to run last, because building the Python wheel while other tests are running in parallel was causing test failures. There is no security-relevant code change here.