You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fix unsafe pickle deserialization vulnerability in ZMQ transport
Add HMAC-SHA256 signing to all ZMQ messages so that only processes
sharing the same key can exchange pickle payloads. Unsigned or forged
messages are rejected before reaching pickle.loads(). Also bind the
Publication socket to 127.0.0.1 by default instead of all interfaces,
and expand the README security notice to cover the network attack surface.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: README.md
+22-5Lines changed: 22 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -14,11 +14,28 @@ TensorWatch is under heavy development with a goal of providing a platform for d
14
14
pip install tensorwatch
15
15
```
16
16
17
-
TensorWatch supports Python 3.x and is tested with PyTorch 0.4-1.x. Most features should also work with TensorFlow eager tensors. TensorWatch uses graphviz to create network diagrams and depending on your platform sometime you might need to manually [install](https://graphviz.gitlab.io/download/) it.
18
-
19
-
### Security Notice
20
-
21
-
> **Caution:** TensorWatch persists stream data with Python's `pickle` serialization. Unpickling content from untrusted sources can execute arbitrary code. Only open TensorWatch pickle files (for example `.log` or `.pkl`) that you created yourself or that come from a source you fully trust.
17
+
TensorWatch supports Python 3.x and is tested with PyTorch 0.4-1.x. Most features should also work with TensorFlow eager tensors. TensorWatch uses graphviz to create network diagrams and depending on your platform sometime you might need to manually [install](https://graphviz.gitlab.io/download/) it.
18
+
19
+
### Security Notice
20
+
21
+
> **Caution:** TensorWatch uses Python's `pickle` serialization for both file
22
+
> persistence and network communication over ZeroMQ sockets. Pickle
23
+
> deserialization can execute arbitrary code.
24
+
>
25
+
> -**Files:** Only open TensorWatch pickle files (`.log`, `.pkl`) that you
26
+
> created yourself or that come from a source you fully trust.
27
+
> -**Network:** When `tw.Watcher()` is instantiated, it opens local TCP
28
+
> sockets (default ports 40859 and 41459) for real-time streaming and the
29
+
> Lazy Logging query interface. Messages are HMAC-signed to reject payloads
30
+
> from unauthorized processes, but the Lazy Logging feature intentionally
31
+
> evaluates Python expressions sent by connected clients. **Do not expose
32
+
> TensorWatch ports to untrusted networks or users.** TensorWatch is a
33
+
> development and debugging tool and should not be used in production or
34
+
> multi-tenant environments.
35
+
> -**Lazy Logging:** The `expr` parameter in `create_stream()` is evaluated
36
+
> with Python's `eval()`. This is by design to enable interactive debugging,
37
+
> but it means any client that can authenticate and connect can execute
0 commit comments