diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index dfd9910eba..e797445c98 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -11,7 +11,7 @@ on: default: "" permissions: - contents: write + contents: read concurrency: group: release-${{ github.ref }} @@ -19,6 +19,9 @@ concurrency: jobs: release: + # Only this job publishes the GitHub release, so only it gets write access. + permissions: + contents: write # Intentionally tracked at @main (not SHA-pinned) so org-wide CI improvements, security fixes, and build optimizations propagate without PR churn across all craftapp repos. uses: storytold/craft-common-actions/.github/workflows/release.yml@main with: diff --git a/Cargo.lock b/Cargo.lock index 14cbaef7b4..66603f81d8 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -809,9 +809,9 @@ dependencies = [ [[package]] name = "clipboard-win" -version = "5.4.1" +version = "5.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bde03770d3df201d4fb868f2c9c59e66a3e4e2bd06692a0fe701e7103c7e84d4" +checksum = "052af7878466feccda12ba7a6a67d019d712f296809559b47c12c8cc196d3a9a" dependencies = [ "error-code", ] @@ -1208,9 +1208,9 @@ dependencies = [ [[package]] name = "ctutils" -version = "0.4.3" +version = "0.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03bb0e1cc970d482d121d9a1744999169b69a07470b3d644a7894e53fcaf4574" +checksum = "a2376ffd6f96d8a9db59875b4b6b0237d6900b5baf64279714e05493ce64828a" dependencies = [ "cmov", ] diff --git a/SECURITY.md b/SECURITY.md new file mode 100644 index 0000000000..f539bf60cd --- /dev/null +++ b/SECURITY.md @@ -0,0 +1,26 @@ +# Security policy + +## Reporting a vulnerability + +Please report security problems privately through GitHub: +**[Report a vulnerability](https://github.com/storytold/wordcraft/security/advisories/new)** +(Security tab › Advisories › Report a vulnerability). + +Don't open a public issue or pull request for a vulnerability until a fix is released. + +Useful to include: +- the WordCraft version or commit, and the platform (macOS, Windows, Linux, BSD, web); +- what an attacker can do, and what they need (a crafted document, MCP or control-channel access, a local account…); +- steps or a sample file that reproduce it. + +We'll acknowledge the report, keep you updated while we work on a fix, and credit you in the advisory unless you'd rather not be named. + +## Supported versions + +Fixes go into `main` and ship in the next release. Older releases don't get backported fixes. + +## Scope + +In scope: anything that lets a document, file, command, MCP or control-channel request, or network response read or write files it shouldn't, run code, leak data, or crash WordCraft and lose the user's work. + +Crashes from hostile input count, because WordCraft treats every panic as a bug (see [Never crash](AGENTS.md)).