From aed2e052c248d81f23ec01eb91e08162100a55fb Mon Sep 17 00:00:00 2001 From: ethcipher Date: Sun, 28 Sep 2025 08:47:16 +0100 Subject: [PATCH 1/2] patch webRTC IP leaks --- zendriver/core/config.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/zendriver/core/config.py b/zendriver/core/config.py index 70418fc5..0b004519 100644 --- a/zendriver/core/config.py +++ b/zendriver/core/config.py @@ -46,6 +46,8 @@ def __init__( browser_connection_timeout: float = 0.25, browser_connection_max_tries: int = 10, user_agent: Optional[str] = None, + disable_webRTC: Optional[bool] = True, + disable_webGL: Optional[bool] = False, **kwargs: Any, ): """ @@ -106,6 +108,8 @@ def __init__( self.host = host self.port = port self.expert = expert + self.disable_webRTC = disable_webRTC + self.disable_webGL = disable_webGL self._extensions: list[PathLike] = [] # when using posix-ish operating system and running as root @@ -226,6 +230,14 @@ def __call__(self) -> list[str]: args.append("--remote-debugging-host=%s" % self.host) if self.port: args.append("--remote-debugging-port=%s" % self.port) + if self.disable_webRTC: + args += [ + "--webrtc-ip-handling-policy=disable_non_proxied_udp", + "--force-webrtc-ip-handling-policy", + ] + if self.disable_webGL: + args += ["--disable-webgl", "--disable-webgl2"] + return args def add_argument(self, arg: str) -> None: From 882a593c8873d52a7b40524781f849c276e70b54 Mon Sep 17 00:00:00 2001 From: ethcipher Date: Sun, 28 Sep 2025 08:57:22 +0100 Subject: [PATCH 2/2] updated CHANGELOG.md --- CHANGELOG.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2f42de74..aeb6b55f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,6 +15,17 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Removed + +## [0.14.3] - 2025-09-28 + +### Fixed + +- Fix WebRTC IP Leaks @ethcipher + +### Added + +- Add `disable_webRTC` and `disable_webGL` agrs to `Config` class @ethcipher + ## [0.14.2] - 2025-09-09 ### Fixed