Headline
CVE-2023-31134: Release tauri v1.0.9 · tauri-apps/tauri
Tauri is software for building applications for multi-platform deployment. The Tauri IPC is usually strictly isolated from external websites, but in versions 1.0.0 until 1.0.9, 1.1.0 until 1.1.4, and 1.2.0 until 1.2.5, the isolation can be bypassed by redirecting an existing Tauri window to an external website. This is either possible by an application implementing a feature for users to visit arbitrary websites or due to a bug allowing the open redirect. This allows the external website access to the IPC layer and therefore to all configured and exposed Tauri API endpoints and application specific implemented Tauri commands. This issue has been patched in versions 1.0.9, 1.1.4, and 1.2.5. As a workaround, prevent arbitrary input in redirect features and/or only allow trusted websites access to the IPC.
Updating crates.io index
Cargo Audit
Fetching advisory database from `https://github.com/RustSec/advisory-db.git`
Loaded 543 security advisories (from /home/runner/.cargo/advisory-db)
Updating crates.io index
Scanning Cargo.lock for vulnerabilities (481 crate dependencies)
Crate: kuchiki
Version: 0.8.1
Warning: unmaintained
Title: `kuchiki` is unmaintained
Date: 2023-01-21
ID: RUSTSEC-2023-0019
URL: https://rustsec.org/advisories/RUSTSEC-2023-0019
Dependency tree:
kuchiki 0.8.1
└── tauri-utils 1.0.3
├── tauri-runtime-wry 0.10.3
│ └── tauri 1.0.9
│ ├── tauri 1.0.9
│ ├── restart 0.1.0
│ └── app-updater 0.1.0
├── tauri-runtime 0.10.3
│ ├── tauri-runtime-wry 0.10.3
│ └── tauri 1.0.9
├── tauri-macros 1.0.4
│ └── tauri 1.0.9
├── tauri-codegen 1.0.4
│ ├── tauri-macros 1.0.4
│ └── tauri-build 1.0.4
│ └── app-updater 0.1.0
├── tauri-build 1.0.4
└── tauri 1.0.9
Crate: atty
Version: 0.2.14
Warning: unsound
Title: Potential unaligned read
Date: 2021-07-04
ID: RUSTSEC-2021-0145
URL: https://rustsec.org/advisories/RUSTSEC-2021-0145
Dependency tree:
atty 0.2.14
├── colored 2.0.0
│ └── mockito 0.31.1
│ └── tauri 1.0.9
│ ├── tauri 1.0.9
│ ├── restart 0.1.0
│ └── app-updater 0.1.0
└── clap 3.2.25
└── tauri 1.0.9
warning: 2 allowed warnings found
[1.0.9]
- Block remote URLs from accessing the IPC.
- fa90214b0 feat(core): block remote URLs from accessing the IPC on 2023-04-12
Cargo Publish
Updating crates.io index
Packaging tauri v1.0.9 (/home/runner/work/tauri/tauri/core/tauri)
Verifying tauri v1.0.9 (/home/runner/work/tauri/tauri/core/tauri)
Downloading crates ...
Downloaded futures-macro v0.3.28
Downloaded libm v0.2.6
Downloaded sha2 v0.10.6
Downloaded same-file v1.0.6
Downloaded mio v0.8.6
Downloaded tokio-macros v2.1.0
Downloaded futures v0.3.28
Downloaded xattr v0.2.3
Downloaded block-buffer v0.10.4
Downloaded alloc-stdlib v0.2.2
Downloaded alloc-no-stdlib v2.0.4
Downloaded brotli-decompressor v2.3.4
Downloaded glob v0.3.1
Downloaded generic-array v0.14.7
Downloaded futures-sink v0.3.28
Downloaded futures-lite v1.13.0
Downloaded globset v0.4.10
Downloaded serde_repr v0.1.12
Downloaded signal-hook-registry v1.4.1
Downloaded waker-fn v1.1.0
Downloaded tauri-macros v1.2.1
Downloaded tauri-codegen v1.2.1
Downloaded tokio v1.28.0
Downloaded brotli v3.3.4
Downloaded json-patch v0.2.7
Downloaded ico v0.2.0
Downloaded treediff v3.0.2
Downloaded tempfile v3.5.0
Downloaded tar v0.4.38
Downloaded state v0.5.3
Downloaded socket2 v0.4.9
Downloaded serialize-to-javascript-impl v0.1.1
Downloaded serialize-to-javascript v0.1.1
Downloaded parking v2.1.0
Downloaded ignore v0.4.20
Downloaded filetime v0.2.21
Downloaded fastrand v1.9.0
Downloaded digest v0.10.6
Downloaded crypto-common v0.1.6
Downloaded cpufeatures v0.2.7
Downloaded bstr v1.4.0
Downloaded aho-corasick v0.7.20
Downloaded walkdir v2.3.3
Downloaded typenum v1.16.0
Downloaded tauri-runtime-wry v0.10.3
Compiling proc-macro2 v1.0.56
Compiling quote v1.0.26
Compiling unicode-ident v1.0.8
Compiling serde_derive v1.0.160
Compiling syn v2.0.15
Compiling serde v1.0.160
Compiling autocfg v1.1.0
Compiling libc v0.2.142
Compiling smallvec v1.10.0
Compiling pkg-config v0.3.27
Compiling indexmap v1.9.3
Compiling hashbrown v0.12.3
Compiling heck v0.4.1
Compiling winnow v0.4.6
Compiling target-lexicon v0.12.7
Compiling cfg-if v1.0.0
Compiling cfg-expr v0.15.1
Compiling version-compare v0.1.1
Compiling syn v1.0.109
Compiling toml_datetime v0.6.1
Compiling serde_spanned v0.6.1
Compiling toml_edit v0.19.8
Compiling toml v0.7.3
Compiling system-deps v6.0.5
Compiling version_check v0.9.4
Compiling memchr v2.5.0
Compiling once_cell v1.17.1
Compiling glib-sys v0.15.10
Compiling gobject-sys v0.15.10
Compiling bitflags v1.3.2
Compiling ppv-lite86 v0.2.17
Compiling siphasher v0.3.10
Compiling getrandom v0.1.16
Compiling getrandom v0.2.9
Compiling futures-core v0.3.28
Compiling rand_core v0.5.1
Compiling thiserror v1.0.40
Compiling proc-macro-error-attr v1.0.4
Compiling thiserror-impl v1.0.40
Compiling slab v0.4.8
Compiling futures-channel v0.3.28
Compiling pin-project-lite v0.2.9
Compiling futures-task v0.3.28
Compiling rand_pcg v0.2.1
Compiling rand_chacha v0.2.2
Compiling proc-macro-error v1.0.4
Compiling futures-sink v0.3.28
Compiling futures-io v0.3.28
Compiling anyhow v1.0.71
Compiling futures-util v0.3.28
Compiling rand v0.7.3
Compiling phf_shared v0.8.0
Compiling gdk-sys v0.15.1
Compiling gio-sys v0.15.10
Compiling futures-macro v0.3.28
Compiling pin-utils v0.1.0
Compiling phf_generator v0.8.0
Compiling proc-macro-crate v1.3.1
Compiling log v0.4.17
Compiling rand_core v0.6.4
Compiling futures-executor v0.3.28
Compiling fnv v1.0.7
Compiling proc-macro-hack v0.5.20+deprecated
Compiling unicode-segmentation v1.10.1
Compiling rand_chacha v0.3.1
Compiling heck v0.3.3
Compiling glib-macros v0.15.13
Compiling phf_shared v0.10.0
Compiling atk-sys v0.15.1
Compiling toml v0.5.11
Compiling cfg-expr v0.9.1
Compiling semver v1.0.17
Compiling version-compare v0.0.11
Compiling system-deps v5.0.0
Compiling glib v0.15.12
Compiling rand v0.8.5
Compiling cairo-sys-rs v0.15.1
Compiling pango-sys v0.15.10
Compiling gdk-pixbuf-sys v0.15.10
Compiling phf_generator v0.10.0
Compiling phf_codegen v0.8.0
Compiling lock_api v0.4.9
Compiling byteorder v1.4.3
Compiling serde_json v1.0.96
Compiling itoa v1.0.6
Compiling parking_lot_core v0.9.7
Compiling gtk-sys v0.15.3
Compiling ryu v1.0.13
Compiling scopeguard v1.1.0
Compiling phf_macros v0.8.0
Compiling new_debug_unreachable v1.0.4
Compiling gio v0.15.12
Compiling phf v0.8.0
Compiling parking_lot v0.12.1
Compiling string_cache_codegen v0.5.2
Compiling crc32fast v1.3.2
Compiling mac v0.1.1
Compiling simd-adler32 v0.3.5
Compiling ident_case v1.0.1
Compiling tinyvec_macros v0.1.1
Compiling strsim v0.10.0
Compiling precomputed-hash v0.1.1
Compiling tinyvec v1.6.0
Compiling darling_core v0.20.1
Compiling markup5ever v0.10.1
Compiling futf v0.1.5
Compiling rustc_version v0.4.0
Compiling soup2-sys v0.2.0
Compiling uuid v1.3.2
Compiling cssparser v0.27.2
Compiling memoffset v0.8.0
Compiling typenum v1.16.0
Compiling dtoa v0.4.8
Compiling utf-8 v0.7.6
Compiling adler v1.0.2
Compiling miniz_oxide v0.7.1
Compiling tendril v0.4.3
Compiling dtoa-short v0.3.3
Compiling field-offset v0.3.5
Compiling darling_macro v0.20.1
Compiling unicode-normalization v0.1.22
Compiling string_cache v0.8.7
Compiling selectors v0.22.0
Compiling generic-array v0.14.7
Compiling html5ever v0.25.2
Compiling cssparser-macros v0.6.0
Compiling convert_case v0.4.0
Compiling nodrop v0.1.14
Compiling itoa v0.4.8
Compiling unicode-bidi v0.3.13
Compiling percent-encoding v2.2.0
Compiling stable_deref_trait v1.2.0
Compiling matches v0.1.10
Compiling alloc-no-stdlib v2.0.4
Compiling alloc-stdlib v0.2.2
Compiling servo_arc v0.1.1
Compiling form_urlencoded v1.1.0
Compiling idna v0.3.0
Compiling derive_more v0.99.17
Compiling gdk-pixbuf v0.15.11
Compiling flate2 v1.0.26
Compiling darling v0.20.1
Compiling fdeflate v0.3.0
Compiling pango v0.15.10
Compiling cairo-rs v0.15.12
Compiling fxhash v0.2.1
Compiling javascriptcore-rs-sys v0.4.0
Compiling gtk v0.15.5
Compiling thin-slice v0.1.1
Compiling same-file v1.0.6
Compiling walkdir v2.3.3
Compiling gdk v0.15.4
Compiling png v0.17.8
Compiling serde_with_macros v2.3.3
Compiling url v2.3.1
Compiling brotli-decompressor v2.3.4
Compiling cfb v0.7.3
Compiling atk v0.15.1
Compiling treediff v4.0.2
Compiling phf_macros v0.10.0
Compiling gtk3-macros v0.15.6
Compiling webkit2gtk-sys v0.18.0
Compiling x11 v2.21.0
Compiling crossbeam-utils v0.8.15
Compiling phf v0.10.1
Compiling json-patch v1.0.0
Compiling infer v0.12.0
Compiling brotli v3.3.4
Compiling kuchiki v0.8.1
Compiling serde_with v2.3.3
Compiling gdkx11-sys v0.15.1
Compiling ctor v0.1.26
Compiling x11-dl v2.21.0
Compiling glob v0.3.1
Compiling bytes v1.4.0
Compiling cty v0.2.2
Compiling raw-window-handle v0.4.3
Compiling tauri-utils v1.3.0
Compiling block-buffer v0.10.4
Compiling crypto-common v0.1.6
Compiling tao v0.12.2
Compiling uuid v0.8.2
Compiling io-lifetimes v1.0.10
Compiling lazy_static v1.4.0
Compiling cfb v0.6.1
Compiling digest v0.10.6
Compiling crossbeam-channel v0.5.8
Compiling http v0.2.9
Compiling soup2 v0.2.1
Compiling javascriptcore-rs v0.16.0
Compiling treediff v3.0.2
Compiling aho-corasick v1.0.1
Compiling instant v0.1.12
Compiling rustix v0.37.18
Compiling wry v0.19.0
Compiling regex-syntax v0.7.1
Compiling cpufeatures v0.2.7
Compiling sha2 v0.10.6
Compiling regex v1.8.1
Compiling json-patch v0.2.7
Compiling webkit2gtk v0.18.2
Compiling infer v0.7.0
Compiling ico v0.2.0
Compiling aho-corasick v0.7.20
Compiling bstr v1.4.0
Compiling tokio v1.28.0
Compiling fastrand v1.9.0
Compiling base64 v0.13.1
Compiling http-range v0.1.5
Compiling linux-raw-sys v0.3.6
Compiling tauri-runtime v0.10.3
Compiling tauri-codegen v1.2.1
Compiling globset v0.4.10
Compiling mio v0.8.6
Compiling tauri v1.0.9 (/home/runner/work/tauri/tauri/target/package/tauri-1.0.9)
Compiling thread_local v1.1.7
Compiling serialize-to-javascript-impl v0.1.1
Compiling filetime v0.2.21
Compiling tokio-macros v2.1.0
Compiling signal-hook-registry v1.4.1
Compiling xattr v0.2.3
Compiling socket2 v0.4.9
Compiling dirs-sys-next v0.1.2
Compiling num_cpus v1.15.0
Compiling parking v2.1.0
Compiling waker-fn v1.1.0
Compiling futures-lite v1.13.0
Compiling dirs-next v2.0.0
Compiling tar v0.4.38
Compiling serialize-to-javascript v0.1.1
Compiling ignore v0.4.20
Compiling tauri-macros v1.2.1
Compiling tauri-runtime-wry v0.10.3
Compiling tempfile v3.5.0
Compiling futures v0.3.28
Compiling serde_repr v0.1.12
Compiling state v0.5.3
Finished dev [unoptimized + debuginfo] target(s) in 2m 33s
Packaged 71 files, 857.2KiB (194.8KiB compressed)
Uploading tauri v1.0.9 (/home/runner/work/tauri/tauri/core/tauri)
Updating crates.io index
Waiting on `tauri` to propagate to crates.io index (ctrl-c to wait asynchronously)
Updating crates.io index
Updating crates.io index
Updating crates.io index
Updating crates.io index
Related news
### Impact The Tauri IPC is usually strictly isolated from external websites but the isolation can be bypassed by redirecting an existing Tauri window to an external website. This is either possible by an application implementing a feature for users to visit arbitrary websites or due to a bug allowing the open redirect[^open-redirect]. This allows the external website access to the IPC layer and therefore to all configured and exposed Tauri API endpoints and application specific implemented Tauri commands. ### Patches This issue has been patched in the latest release and was backported to all previous `1.x` releases. ### Workarounds Prevent arbitrary input in redirect features. Only allow trusted websites access to the IPC. ### References The feature to enable this behavior in a more constrained way was introduced in the `1.3` release and documentation around this can be found in the [documentation](https://tauri.app/v1/api/config/#securityconfig.dangerousremotedomainipcaccess). ...