Dave Kempe
9dbdc17843
Security hardening + test harness expansion
...
Security audit (v1.6.1 cycle) findings:
- Shadow tokens: each use now writes a shadow_used entry to
token_audit_log with the connecting IP. Prior behaviour audited
only the mint, so a leaked token could be replayed within its
10-minute TTL with no observable record.
- OIDC groups claim: bound per-name length to 256 bytes (UTF-8
boundary preserved) and array size to 64. A misconfigured or
compromised IdP could previously bloat the seen_groups table
unbounded.
- .cargo/audit.toml formalises the rsa (RUSTSEC-2023-0071) and
rustls-pemfile (RUSTSEC-2025-0134) advisory ignores with
rationale, replacing the inline --ignore flag in CI. New
advisories on those crates will still surface.
Small defence-in-depth: WebSocket Origin/Host compare is now
case-insensitive (DNS is canonical) — previously exact-match.
Test harness grows from 150 to 215 tests:
- Pure-function regression coverage: OIDC groups cap, shadow-token
validation matrix (owner/shadow/invalid/expired/IDOR), Vault
path traversal, VDI username sanitization, recording-name
hardening, JPEG magic bytes, Guacamole protocol parser
adversarial cases (overflow length, UTF-8 split, malformed
frames, buffer cap, streaming boundaries), Origin/Host matcher.
- Async + in-memory state: SessionManager test helper bypassing
disk/browser, owner/shadow validation end-to-end, mint prunes
expired, shadow is session-scoped (IDOR guard), disconnect_viewer
saturating decrement, seen_groups DB bounds, rate-limit layer
burst -> 429 (proves tower_governor is actually applied).
Behaviour-preserving refactors to support testing:
check_share_token_match (from validate_share_token),
is_jpeg_magic (from thumbnail PUT), origin_host_matches (from
ws_handler CSWSH check).
2026-04-19 14:46:07 +10:00
Dave Kempe
c21131b1e1
release: split Docker build to native runners + refresh locks
...
Docker pipeline
- Multi-arch build on ubuntu-latest with QEMU was the long pole of
the release pipeline (arm64 took 30–60 min vs ~5 min for the
native-arm .deb job). Split into three jobs:
- build-docker-amd64 on ubuntu-latest
- build-docker-arm64 on ubuntu-24.04-arm (same native runner the
arm64 .deb build uses)
- build-docker-manifest combines them with
`docker buildx imagetools create` into the consumer-facing
`sol1/rustguac:VER` and `:latest` multi-arch manifest lists.
- Consumer-facing tags are unchanged — `docker pull
sol1/rustguac:latest` still auto-picks the right arch. The per-arch
intermediate tags (`:VER-amd64`, `:VER-arm64`) appear as byproducts
on Docker Hub but aren't required.
- The release job now depends on build-docker-manifest instead of
the removed build-docker.
Dependency refresh (closes 5 low-severity Dependabot alerts)
- `cargo update` at root and in fuzz/:
- rustls-webpki: fuzz/ was 0.103.x < 0.103.12 → now 0.103.12
(main lock was already there from v1.5.5)
- rand 0.9.x: < 0.9.3 → 0.9.4 (GHSA-cq8v-f236-94qc: unsound with
a custom logger inside rand::rng())
- rand 0.10.0 → 0.10.1 (same GHSA)
- We don't hook loggers into rand so the unsoundness never triggered
in practice, but getting to clean alerts is worth a lockfile bump.
2026-04-18 22:21:47 +10:00
dependabot[bot]
5143df15f4
ci: bump softprops/action-gh-release from 2 to 3 ( #104 )
...
Bumps [softprops/action-gh-release](https://github.com/softprops/action-gh-release ) from 2 to 3.
- [Release notes](https://github.com/softprops/action-gh-release/releases )
- [Changelog](https://github.com/softprops/action-gh-release/blob/master/CHANGELOG.md )
- [Commits](https://github.com/softprops/action-gh-release/compare/v2...v3 )
---
updated-dependencies:
- dependency-name: softprops/action-gh-release
dependency-version: '3'
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-18 21:55:05 +10:00
Dave Kempe
faf941eb06
Pin guacamole-server to known-good commit 2980cf0
...
Upstream GUACAMOLE-2221 introduced -Werror=maybe-uninitialized failure.
Pin all build paths (CI, Dockerfile, install.sh) to last known-good commit.
Update guacd version deliberately, not on every upstream push.
2026-04-01 10:33:48 +11:00
Dave Kempe
63909484c0
Remove RPM build from release pipeline (FreeRDP 3 only)
2026-03-28 22:44:45 +11:00
Dave Kempe
07ebb33702
v0.9.1: Onboarding wizard, security updates, packaging fix
...
- Onboarding wizard for new users (was missing from v0.8.1-v0.9.0)
- Settings menu label visibility improvement
- EnvironmentFile=-/opt/rustguac/env in systemd service
- russh 0.57→0.58.1 (drops vulnerable libcrux-sha3)
- aws-lc-sys 0.38→0.39 (RUSTSEC-2026-0044, 0048)
- rustls-webpki 0.103.9→0.103.10 (RUSTSEC-2026-0049)
- Removed RUSTSEC-2026-0074 ignore (no longer needed)
2026-03-27 10:32:47 +11:00
Dave Kempe
6489bab9a9
CI: ignore RUSTSEC-2026-0074 (libcrux-sha3 via russh, no update available)
2026-03-24 20:49:23 +11:00
Dave Kempe
566336aadb
CI: ignore yanked crate warnings in audit (digest 0.11.1 via russh)
2026-03-24 20:38:49 +11:00
Dave Kempe
8945a33208
Merge pull request #42 from sol1/dependabot/github_actions/docker/build-push-action-7
...
ci: bump docker/build-push-action from 6 to 7
2026-03-07 07:33:39 +11:00
Dave Kempe
aea2e5da21
Merge pull request #43 from sol1/dependabot/github_actions/docker/setup-buildx-action-4
...
ci: bump docker/setup-buildx-action from 3 to 4
2026-03-07 07:33:27 +11:00
Dave Kempe
4e85db3022
Merge pull request #44 from sol1/dependabot/github_actions/docker/login-action-4
...
ci: bump docker/login-action from 3 to 4
2026-03-07 07:33:14 +11:00
dependabot[bot]
deb53f16ec
ci: bump docker/setup-buildx-action from 3 to 4
...
Bumps [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action ) from 3 to 4.
- [Release notes](https://github.com/docker/setup-buildx-action/releases )
- [Commits](https://github.com/docker/setup-buildx-action/compare/v3...v4 )
---
updated-dependencies:
- dependency-name: docker/setup-buildx-action
dependency-version: '4'
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-03-06 20:20:14 +00:00
dependabot[bot]
1f1032242d
ci: bump docker/login-action from 3 to 4
...
Bumps [docker/login-action](https://github.com/docker/login-action ) from 3 to 4.
- [Release notes](https://github.com/docker/login-action/releases )
- [Commits](https://github.com/docker/login-action/compare/v3...v4 )
---
updated-dependencies:
- dependency-name: docker/login-action
dependency-version: '4'
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-03-06 09:21:16 +00:00
dependabot[bot]
b21ddabf8a
ci: bump docker/build-push-action from 6 to 7
...
Bumps [docker/build-push-action](https://github.com/docker/build-push-action ) from 6 to 7.
- [Release notes](https://github.com/docker/build-push-action/releases )
- [Commits](https://github.com/docker/build-push-action/compare/v6...v7 )
---
updated-dependencies:
- dependency-name: docker/build-push-action
dependency-version: '7'
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-03-06 09:21:08 +00:00
dependabot[bot]
20b8d3fc4a
ci: bump docker/setup-qemu-action from 3 to 4
...
Bumps [docker/setup-qemu-action](https://github.com/docker/setup-qemu-action ) from 3 to 4.
- [Release notes](https://github.com/docker/setup-qemu-action/releases )
- [Commits](https://github.com/docker/setup-qemu-action/compare/v3...v4 )
---
updated-dependencies:
- dependency-name: docker/setup-qemu-action
dependency-version: '4'
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-03-06 09:21:05 +00:00
Dave Kempe
ea72c52a31
v0.5.0: Theme system, ARM64 builds, Docker fixes, dependency updates
...
Theme system:
- 6 built-in presets (dark, light, high-contrast, terminal, nord, corporate)
- Admin configures preset + per-color overrides in [theme] config section
- Client-side theme switching via localStorage (flash-free)
- All static pages updated with 28 CSS custom properties
Proxy telemetry:
- Track which side terminated connection (guacd/browser/cancelled)
- Timing-based log levels (guacd close <5s = warning)
- Clamp session dimensions to safe ranges (width 640-8192, height 480-8192, DPI 16-384)
Docker fixes (#37 ):
- Fix port mismatch: Dockerfile now uses 8089 consistently
- Auto-generate admin API key on first run
- Add API key setup docs and recordings volume to compose example
ARM64 support:
- Multi-platform Docker builds (linux/amd64 + linux/arm64)
- Native ARM64 .deb and tarball builds via ubuntu-24.04-arm runner
Dependency updates:
- rustls 0.23.37, chrono 0.4.44, clap 4.5.60, toml 1.0.3
- futures-util 0.3.32, uuid 1.21.0, pulldown-cmark 0.13.1
- actions/upload-artifact v7, actions/download-artifact v8
Also: FreeRDP 3.x NULL deref patch (003), .gitignore for .playwright-mcp/
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-01 15:05:41 +11:00
Dave Kempe
32c60469e4
Merge pull request #5 from sol1/dependabot/github_actions/actions/checkout-6
...
ci: bump actions/checkout from 4 to 6
2026-02-07 11:25:24 +11:00
Dave Kempe
bf49438ae7
Merge pull request #6 from sol1/dependabot/github_actions/actions/upload-artifact-6
...
ci: bump actions/upload-artifact from 4 to 6
2026-02-07 11:25:12 +11:00
Dave Kempe
577a28dbcb
Merge pull request #7 from sol1/dependabot/github_actions/actions/download-artifact-7
...
ci: bump actions/download-artifact from 4 to 7
2026-02-07 11:25:00 +11:00
dependabot[bot]
1569fe234e
ci: bump actions/checkout from 4 to 6
...
Bumps [actions/checkout](https://github.com/actions/checkout ) from 4 to 6.
- [Release notes](https://github.com/actions/checkout/releases )
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md )
- [Commits](https://github.com/actions/checkout/compare/v4...v6 )
---
updated-dependencies:
- dependency-name: actions/checkout
dependency-version: '6'
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-02-07 00:13:39 +00:00
dependabot[bot]
868c5ef2c9
ci: bump actions/upload-artifact from 4 to 6
...
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact ) from 4 to 6.
- [Release notes](https://github.com/actions/upload-artifact/releases )
- [Commits](https://github.com/actions/upload-artifact/compare/v4...v6 )
---
updated-dependencies:
- dependency-name: actions/upload-artifact
dependency-version: '6'
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-02-07 00:13:38 +00:00
dependabot[bot]
c40fca09a7
ci: bump actions/cache from 4 to 5
...
Bumps [actions/cache](https://github.com/actions/cache ) from 4 to 5.
- [Release notes](https://github.com/actions/cache/releases )
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md )
- [Commits](https://github.com/actions/cache/compare/v4...v5 )
---
updated-dependencies:
- dependency-name: actions/cache
dependency-version: '5'
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-02-07 00:13:37 +00:00
dependabot[bot]
468bb8d342
ci: bump actions/download-artifact from 4 to 7
...
Bumps [actions/download-artifact](https://github.com/actions/download-artifact ) from 4 to 7.
- [Release notes](https://github.com/actions/download-artifact/releases )
- [Commits](https://github.com/actions/download-artifact/compare/v4...v7 )
---
updated-dependencies:
- dependency-name: actions/download-artifact
dependency-version: '7'
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-02-07 00:13:36 +00:00
Dave Kempe
05f39d3d1f
Patch dependency vulnerabilities, update Rust to 1.93
...
- bytes 1.11.0 -> 1.11.1 (integer overflow fix)
- time 0.3.41 -> 0.3.47 (stack exhaustion DoS fix)
- Ignore RUSTSEC-2023-0071 (rsa timing attack, no fix available)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-07 10:08:08 +11:00
Dave Kempe
fead6bbd9b
Add supply chain security: Dependabot, cargo audit in CI
...
- Enable Dependabot for weekly Cargo and GitHub Actions updates
- Add cargo audit step to CI pipeline
- Patch bytes 1.11.0 -> 1.11.1 (integer overflow fix)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-07 10:03:18 +11:00
Dave Kempe
67101e27ce
Initial public release
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-06 14:38:53 +11:00