Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 1 addition & 2 deletions CHANGELOG.rst
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,9 @@ dev
- Support for Python 3.14 has been added.
- Support for PyPy 3.11 has been added.


**Bugfixes**

-
- Prevent sensitive headers from being leaked

4.1.0 (2025-01-22)
------------------
Expand Down
14 changes: 10 additions & 4 deletions src/hpack/hpack.py
Original file line number Diff line number Diff line change
Expand Up @@ -284,16 +284,22 @@ def encode(self,
def add(self, to_add: tuple[bytes, bytes], sensitive: bool, huffman: bool = False) -> bytes:
"""
Serializes a header key-value tuple.

When sensitive is True, the header will not be added to the header table,
furthermore, the header value will be redacted in debug logs, as "SENSITIVE_REDACTED",
to prevent accidental exposure of sensitive information.
"""
name, value = to_add

display_value = value if not sensitive else b"SENSITIVE_REDACTED"
log.debug(
"Adding %s to the header table, sensitive:%s, huffman:%s",
to_add,
"Adding %s=%s to the header table, sensitive:%s, huffman:%s",
name,
display_value,
sensitive,
huffman,
)

name, value = to_add

# Set our indexing mode
indexbit = INDEX_INCREMENTAL if not sensitive else INDEX_NEVER

Expand Down