OONI Changelog¶
OONI Probe, Explorer, and Run release summaries, along with the underlying measurement engine. Newest at the top.
The app and the engine version independently. The cross-platform app is 6.x, while the measurement engine and command-line tool (OONI Probe CLI) are 3.x, and each app build bundles one engine version. If you analyse data or schedule your own measurements, read the engine entries: that is where changes to measurement behaviour land.
OONI Probe 6.3.1¶
2026-11-09 · Upstream announcement
- The measurement engine moves to OONI Probe CLI v3.31.1, which brings the app the fix to the Brotli (a compression format widely used on the web) decompression library; see the v3.31.1 entry below for details. The app's release notes list no separate security fixes and do not mention exploitation in the wild.
- Adds Serbian, in both Latin and Cyrillic script.
- The host field for a custom proxy now accepts
localhostand top-level domains longer than six letters, both of which were previously rejected as malformed. - Three more bug fixes: unit conversion was wrong for values between one million and ten million, the network name in the results filter could be empty, and failed measurement results could not be deselected.
- Dependency and translation updates.
OONI Probe CLI v3.31.1¶
2026-11-03 · Upstream release
- A minor release of the measurement engine and command-line tool, bundled in the cross-platform app from 6.3.1.
- The security-relevant part is a dependency update (#1862). The Go Brotli library moves from 1.1.1 to 1.2.7, fixing the counterpart of Brotli's CVE-2026-111497 (also called HTTP2Shell, an out-of-bounds write when decompressing crafted data). CISA added the flaw to its Known Exploited Vulnerabilities catalogue (KEV) on 27 October, listing Google's original C implementation. An analysis by the security firm Sweet Security states that the Go version is affected too, reproducing it as a program crash (panic), and recommends upgrading to 1.2.7 or later.
- Brotli is an indirect dependency in OONI Probe. The contributor who submitted the fix assessed its severity in Go as low, and neither OONI's release notes nor the PR mention OONI Probe being exploited.
- The same PR replaces utls (a library that mimics browsers' TLS handshake fingerprints) from yawning/utls, unmaintained since 2021, with refraction-networking/utls; the PR description notes that the old utls has published security advisories. The compression library klauspost/compress also moves from 1.19.1 to 1.20.3.
- The User-Agent sent during measurements now names a newer Chrome version, because bot management services on websites block User-Agents with outdated version numbers (#1861).
- The engine now reports its own name and version to the app that calls it (#1860).
OONI Probe 6.3.0¶
2026-11-02 · Upstream announcement
- The measurement engine moves to OONI Probe CLI v3.31.0, so its two security-related changes, removing the eMudhra root certificate and moving Go to 1.27.3, reach the app from this release (see the v3.31.0 entry below). The app's release notes list no separate security fixes and do not mention exploitation in the wild. Passport moves to 0.1.8.
- Custom proxies support SOCKS5 username and password authentication (RFC 1929). Proxies that required credentials previously could not be used; on Android, some people use credentials to keep untrusted apps off the same proxy.
- When submitting measurement results fails, the app now falls back to
api.oo-srv.com. - Automatic updates on desktop gain a fallback update source. The corresponding issue describes places where GitHub is throttled and downloads often fail.
- macOS and iOS can now detect whether encrypted DNS is turned on, based on whether the DNS queries the system actually sends go over HTTPS or TLS rather than plain UDP or TCP. This feeds the
resolver_typeannotation written into measurements since 6.2.1; previously only Android could detect Private DNS. - The Android networking library moves from ktor-android to OkHttp.
- Dependency and translation updates.
OONI Probe CLI v3.31.0¶
2026-10-22 · Upstream release
- A new release of the measurement engine and command-line tool. The latest cross-platform app, 6.2.1, still bundles v3.30.0, so the app picks up this engine only in its next release.
- Two changes are security-related, and the release notes do not mention exploitation in the wild. The bundled CA certificate list drops eMudhra's root certificate after the compromise of intermediates under it (#1853). Go moves to 1.27.3 to include the fix for CVE-2026-111943, which adds a denylist to Go's
crypto/x509so that known untrustworthy intermediate certificates are rejected even where the system trust store has not been updated (#1854). - Adds richer input support, so each URL or target scheduled for measurement can carry its own settings. Web Connectivity, the instant messaging tests, and the experiments that get their list from check-in are all wired up, and check-in can also specify experiment versions. The miniooni command-line tool supports OONI Run v2.1.
- Adds a DDR experiment that checks whether the system's DNS resolver advertises encrypted DNS endpoints through DDR (RFC 9462, which lets a resolver tell clients which encrypted DNS protocols it supports). The TLS middlebox probe (tlsmiddlebox) gains TCP traceroute and was adjusted for its launch on mobile.
- Fixes: Psiphon measurements are no longer submitted when Psiphon is disabled, echcheck no longer attempts a TLS handshake when the TCP connection failed, and the STUN server stun.ekiga.net is replaced with Cloudflare's.
- Toolchain updates: Go moves from the 1.26 series to 1.27.3, the Debian image moves to bookworm, the Android NDK and C dependencies move to their latest versions, and quic-go moves to 0.56.0.
OONI Probe 6.2.1¶
2026-09-28 · Upstream announcement
- The measurement engine stays on OONI Probe CLI v3.30.0, the same as 6.2.0. This is mainly a bug-fix release, and the release notes list no security fixes.
- Measurements now carry an annotation for how DNS was resolved (
resolver_type), with four values: private DNS (private_dns), VPN, system default and unknown. On Android the app detects whether Private DNS is turned on in system settings; other platforms only report VPN or unknown. Users have reported that measuring with encrypted DNS turned on makes sites blocked by DNS tampering show up as reachable (ooni/probe#2857). OONI chose to collect this annotation first and assess the impact, and not to prompt users to turn encrypted DNS off, since doing so would expose them to more risk. - Fixed the results screen not showing results from after midnight until the app was reopened.
- The minimum iOS version rises from iOS 14 to iOS 15, so devices still on iOS 14 cannot install this release.
- On iOS, anonymous credentials stored in the keychain are now accessible once the device has been unlocked for the first time after a restart. A background run after a restart but before that first unlock gets a failed keychain write (
errSecInteractionNotAllowed); the app now defers saving instead of treating it as an error. - Passport updated to 0.1.7.
- Dependency and translation updates.
OONI Probe 6.2.0¶
2026-08-13 · Upstream announcement
- Measurement engine moves to OONI Probe CLI v3.30.0, the first engine bump of the 6.x series after every earlier release stayed on v3.29.0.
- Android adds in-app language selection, matching what desktop gained in 6.1.1.
- Improved offline handling and retry logic. Unparseable reports are handled gracefully during submission, and file writes are now atomic.
- Anonymous credentials gain a management UI and a reset function. Anonymous credentials let a submitter prove they are entitled to submit measurements without revealing who they are.
- Passport updated to 0.1.5, with support for proxies and timeouts.
- Secure storage on macOS and iOS gains error handling and a retry mechanism.
- Added an indexed query for counting unviewed completed results.
- Dependency updates: Kotlin to 2.4.10 and the Android Gradle Plugin to 9.1.1.
- Updated translations.
OONI Probe CLI v3.30.0¶
2026-07-27 · Upstream release
- The measurement engine and the command-line tool share one version number, and this is what the cross-platform app has bundled since 6.2.0.
- The CLI gains an anonymous credentials submission path, matching the mechanism the app introduced in 6.1.0.
- Removes a stray debug print left in
GetFeatureFlag. - Android, iOS, and desktop
pom.xmlfiles are split apart, so releases on one platform no longer drag the others along. - Toolchain updates: Go moved to 1.25.3 and then to 1.26.5 late in the cycle, the latest stable Android NDK, and bundled assets at probe-assets v0.31.
OONI Probe 6.1.1¶
2026-07-07 · Upstream announcement
- Measurement engine remains on OONI Probe CLI v3.29.0.
- Desktop adds in-app language selection, so the interface no longer has to follow the system locale.
- Android migrates to AGP 9 and adds the ProGuard rules needed for the JNA and UniFFI bindings.
- Database writes are now filtered before being applied, and an index was added on
Measurement.is_done. - Fixed incorrect scaling of usage figures at gigabyte size.
- Updated translations: German, Brazilian Portuguese, European Portuguese, and Turkish.
OONI Probe 6.1.0¶
2026-06-25 · Upstream announcement
- Measurement engine remains on OONI Probe CLI v3.29.0.
- Adds support for anonymous credentials, integrating the passport mechanism.
- Desktop adds a "Run at startup" preference.
- macOS desktop bundles and signs the JavaFX native libraries; JavaFX becomes optional for desktop distributions.
- Desktop database access is pinned to a single dedicated thread for stability.
- The descriptors screen gains a manual refresh button.
- Updated translations and bumped dependencies (Kotlin, Compose, and others).
- Various bug fixes and stability improvements.
OONI Probe 6.0.2¶
2026-05-25 · Upstream announcement
- Measurement engine remains on OONI Probe CLI v3.29.0.
- Cleaner UI for measurement results that contain errors.
- Updated translations: Japanese, Greek, Portuguese, German, Chinese.
- Secure storage implementation rolled out across Android, desktop (macOS, Linux, Windows), and iOS.
- Desktop adds Windows Store as a distribution channel and refactors the desktop distribution-channel architecture.
- Desktop tray menu adds a Force Quit option (revealed by holding Alt).
- Desktop database now uses WAL mode for steadier I/O.
- Toolchain upgraded to Java 25; Kotlin, Ktor, Sentry SDK, and Compose dependencies bumped accordingly.
- Various bug fixes and stability improvements.
Earlier OONI Probe versions
OONI Probe 6.0.1, 6.0.0, and 5.3.0 release notes, plus the OONI Explorer thematic censorship pages translation, are currently available only in traditional Chinese. English versions will be added as the community translates them.
OONI Probe CLI v3.29.1¶
2026-05-12 · Upstream release
- A maintenance release; upstream published no list of changes. App versions 6.0.x and 6.1.x all bundle the v3.29.x line.
OONI Probe CLI v3.29.0¶
2026-02-10 · Upstream release
- Psiphon support ends. Per upstream's plan (issue 1761), both the psiphon tunnel and the psiphon experiment stopped working on 1 January 2026. Anyone analysing censorship measurement data should note that this test produces no new data from that point.
- Adds the internal
userauthpackage, the foundation for anonymous credentials, which let a submitter prove they are entitled to submit without revealing who they are. - Caps how much of an HTTP response body is read, so an abnormal or malicious response cannot exhaust memory.
- Updates bundled certificates and C dependencies.