Skip to content

chore(release): v0.2.1 to main - #86

Merged
marcinobel merged 16 commits into
mainfrom
develop
Sep 25, 2026
Merged

marcinobel merged 16 commits into
mainfrom
develop

Conversation

@marcinobel

Copy link
Copy Markdown
Member

Release 0.2.1: merges develop into main.

After merge: signed tag v0.2.1 on main, GitHub Release, the owner approves the protected release environment, then the advisory is published with fixed version 0.2.1.

marcinobel and others added 16 commits September 24, 2026 23:52
* fix: keep keychain secrets out of process arguments

`security add-generic-password` received the secret as `-w <value>`, so it
sat in the process argument list while the command ran and any local process
could read it with `ps` (GHSA-h6g4-mq8c-5chp).

The value now reaches `security` on stdin: the command is fed to `security -i`
and carries the secret as `-X <hex>`. The documented prompt form (`-w` last,
value on stdin) is not used because `security` reads it through a 128-byte
buffer and silently stores only that prefix, which real n8n API keys exceed.

find, delete and list behaviour is unchanged.

* fix: count keychain input line in bytes

`security -i` reads a line into a fixed 4096-byte buffer, but the guard
measured the command with `String#length`, which counts UTF-16 code units. A
multi-byte account name (a raw user URL) is longer in bytes than that, so a
line the buffer cannot hold still passed the check and was split in two, which
can echo the hex-encoded secret back in the thrown error message.

Measure `Buffer.byteLength(command + '\n', 'utf8')` against a conservative
`MAX_LINE_BYTES = 4000`, and report the rejected value's UTF-8 byte count in
the message (it said "bytes" but printed code units).

Tests cover a multi-byte account refused before spawn, the exact ASCII byte
boundary, and the byte-count message. The macOS e2e adds a round-trip for an
account holding a double quote, a backslash and a space, plus a real
`security -i` non-zero-on-failure check.

Refs GHSA-h6g4-mq8c-5chp.
* chore(release): v0.2.1

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>

* docs: name auth login in 0.2.1 security note

---------

Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
@marcinobel
marcinobel merged commit 01defdd into main Sep 25, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant