mitmproxy

Developer ToolsDesktop

An interactive TLS-capable intercepting HTTP proxy for penetration testers and software developers.

Latest v12.2.3 · · Desktopby mitmproxyWebsitemitmproxy/mitmproxyRSS

Release activity

Release activity — 5 releases across 5 days in the last year. Each cell is one day; darker means more releases that day. Older weeks are hidden at this screen width.
JunJulAug
SundayNo releases on May 10, 2026No releases on May 17, 2026No releases on May 24, 2026No releases on May 31, 2026No releases on Jun 7, 2026No releases on Jun 14, 2026No releases on Jun 21, 2026No releases on Jun 28, 2026No releases on Jul 5, 2026No releases on Jul 12, 2026No releases on Jul 19, 2026No releases on Jul 26, 2026No releases on Aug 2, 2026No releases on Aug 9, 2026No releases on Aug 16, 2026No releases on Aug 23, 2026
MondayNo releases on May 11, 2026No releases on May 18, 2026No releases on May 25, 2026No releases on Jun 1, 2026No releases on Jun 8, 2026No releases on Jun 15, 2026No releases on Jun 22, 2026No releases on Jun 29, 2026No releases on Jul 6, 2026No releases on Jul 13, 2026No releases on Jul 20, 2026No releases on Jul 27, 2026No releases on Aug 3, 2026No releases on Aug 10, 2026No releases on Aug 17, 2026No releases on Aug 24, 2026
Tuesday1 release on May 12, 2026No releases on May 19, 2026No releases on May 26, 2026No releases on Jun 2, 2026No releases on Jun 9, 2026No releases on Jun 16, 2026No releases on Jun 23, 2026No releases on Jun 30, 2026No releases on Jul 7, 2026No releases on Jul 14, 2026No releases on Jul 21, 2026No releases on Jul 28, 2026No releases on Aug 4, 2026No releases on Aug 11, 2026No releases on Aug 18, 2026No releases on Aug 25, 2026
WednesdayNo releases on May 13, 2026No releases on May 20, 2026No releases on May 27, 2026No releases on Jun 3, 2026No releases on Jun 10, 2026No releases on Jun 17, 2026No releases on Jun 24, 2026No releases on Jul 1, 2026No releases on Jul 8, 2026No releases on Jul 15, 2026No releases on Jul 22, 2026No releases on Jul 29, 2026No releases on Aug 5, 2026No releases on Aug 12, 2026No releases on Aug 19, 2026No releases on Aug 26, 2026
ThursdayNo releases on May 14, 2026No releases on May 21, 2026No releases on May 28, 2026No releases on Jun 4, 2026No releases on Jun 11, 2026No releases on Jun 18, 2026No releases on Jun 25, 2026No releases on Jul 2, 2026No releases on Jul 9, 2026No releases on Jul 16, 2026No releases on Jul 23, 2026No releases on Jul 30, 2026No releases on Aug 6, 2026No releases on Aug 13, 2026No releases on Aug 20, 2026
FridayNo releases on May 15, 2026No releases on May 22, 2026No releases on May 29, 2026No releases on Jun 5, 2026No releases on Jun 12, 2026No releases on Jun 19, 2026No releases on Jun 26, 2026No releases on Jul 3, 2026No releases on Jul 10, 2026No releases on Jul 17, 2026No releases on Jul 24, 2026No releases on Jul 31, 2026No releases on Aug 7, 2026No releases on Aug 14, 2026No releases on Aug 21, 2026
SaturdayNo releases on May 16, 2026No releases on May 23, 2026No releases on May 30, 2026No releases on Jun 6, 2026No releases on Jun 13, 2026No releases on Jun 20, 2026No releases on Jun 27, 2026No releases on Jul 4, 2026No releases on Jul 11, 2026No releases on Jul 18, 2026No releases on Jul 25, 2026No releases on Aug 1, 2026No releases on Aug 8, 2026No releases on Aug 15, 2026No releases on Aug 22, 2026

5 releases in the last year

Changelog

v12.2.3Latest

mitmproxy 12.2.3

Changed 1
  • Reduce generated leaf certificate validity from 199 to 197 days so the 2-day notBefore backdate remains below Chromium's 200-day limit
Fixed 3
  • Fix a bug where mitmweb would not pick up its XSRF cookie
  • Fix authority and subject key identifier mismatch errors when mitmproxy is configured with a custom CA whose SubjectKeyIdentifier was not derived as SHA-1 of the public key
  • Fix IndexError in is_mostly_bin when exporting flows to HAR with payloads that have a UTF-8 continuation byte at the 100-byte cutoff

From mitmproxy

  • Reduce generated leaf certificate validity from 199 to 197 days so the 2-day notBefore backdate remains below Chromium's 200-day limit. (#8203, @emanuele-em)
  • Fixed a bug where mitmweb would not pick up its XSRF cookie. (#8224, @mhils)
  • Fix authority and subject key identifier mismatch errors when mitmproxy is configured with a custom CA whose SubjectKeyIdentifier was not derived as SHA-1 of the public key. (#8214, @unique-jakub)
  • Fix IndexError in is_mostly_bin when exporting flows to HAR with payloads that have a UTF-8 continuation byte at the 100-byte cutoff. (#8196, @juliosuas)
View originalPermalink
How v12.2.3 went
v12.2.2

mitmproxy 12.2.2

Added 2
  • Support adding and editing comments on individual flows in the mitmproxy console
  • Allow hiding the Quick Help UI in the mitmproxy console with the 'H' key
Changed 6
  • Reduce CERT_EXPIRY to 199 days
  • Switch all content-encoding compression algorithms to use fastest settings by default, significantly improving addon runtime performance when assigning to message.content
  • Reduce mitmweb FlowTable Redux subscriptions from O(rows) to O(1)
  • Update optmanager value parsing exceptions to include the option name
  • Show intercept filter tag at the bottom for default options in mitmweb
  • Add number of selected flows in the mitmweb footer
Fixed 8
  • Fix addon options not being included in --options output
  • Fix view.settings.setval.toggle command to correctly use the provided key parameter instead of hardcoded "key" string
  • Fix 400 Bad Request for HTTP requests with uppercase scheme
  • Fix console command panel losing focus due to incoming traffic
  • Fix failed CONNECT requests not being displayed in mitmdump
  • Fix mitmweb editors not allowing content to be cleared to an empty string
  • Fix mitmweb showing a blank page on Windows
  • Fix modify_body crash when replacement strings contain backslash sequences
Removed 1
  • Remove several dead functions
Security 1
  • Fix LDAP injection vulnerability

From mitmproxy

  • GHSA-527g-3w9m-29hv: Fix LDAP injection vulnerability reported by @yueyueL. (#8178, @mhils)
  • Reduce CERT_EXPIRY to 199 days. (#8142, @opstic)
  • Switch all content-encoding compression algorithms to use fastest settings by default. This significantly improves addon runtime performance when assigning to message.content. (#8055, @Prinzhorn)
  • Fix addon options not being included in --options output. (#4423, @emanuele-em)
  • Fix view.settings.setval.toggle command to correctly use the provided key parameter instead of hardcoded "key" string. (#8167, @nameearly)
  • Fix 400 Bad Request for HTTP requests with uppercase scheme (e.g. HTTP://). (#8174, @emanuele-em)
  • Fix console command panel losing focus due to incoming traffic (e.g. websocket messages). (#8173, @emanuele-em)
  • mitmdump: Fix failed CONNECT requests not being displayed. (#7083, @Prinzhorn)
  • mitmweb: Reduce FlowTable Redux subscriptions from O(rows) to O(1). (#8104, @ariel42)
  • mitmweb: Fix editors not allowing content to be cleared to an empty string (#8149, @ariel42)
  • Update optmanager value parsing exceptions to include the option name (#8016, @zdwg42)
  • mitmweb: show intercept filter tag at the bottom for default options (#8026, @xBZZZZ)
  • Fix a bug where mitmweb would show a blank page on Windows. (#8041, @Prinzhorn)
  • mitmweb: Add number of selected flows in the footer (#8057, @skrattara)
  • Fix modify_body crash when replacement strings contain backslash sequences. (#8046, @HueCodes)
  • Added support for adding and editing comments on individual flows in the mitmproxy console. (#7944, @lups2000)
  • Allow hiding the Quick Help UI in the mitmproxy console with the 'H' key. (#8095, @seroperson)
  • Removed several dead functions using Skylos. (#8136, @duriantaco)
View originalPermalink
How v12.2.2 went
v12.2.1

mitmproxy 12.2.1

Added 2
  • Make TCP inactivity timeout configurable through a new tcp_timeout option with a default of 600 seconds
  • Add example addon to spoof DNS responses
Changed 4
  • Flush flow file after each flow to allow further processing
  • Fallback to UTF-8 for more content types in infer_content_encoding
  • Improve is_mostly_bin check to support Chinese characters
  • mitmweb is now built with Vite
Fixed 7
  • Remove bless from hex editors to avoid issues with macOS
  • Fix various issues in infer_content_encoding
  • Gracefully handle decoding of raw binary payloads that previously caused errors
  • Show query parameters for empty-body requests in the mitmproxy console
  • Fix URL of mitmweb when --web-host is an IPv6 address
  • Fix event loop leak when running tests
  • Fix TypeScript build by adding React types and removing obsolete directives

From mitmproxy

  • Make TCP inactivity timeout configurable through a new tcp_timeout option (default: 600 seconds). Previously, the timeout was hardcoded to 10 minutes for all TCP connections. (#7909, @keshavkrishnadav)
  • Flush flow file after each flow to allow further processing. (#7967, @caiquejjx)
  • infer_content_encoding: Fallback to UTF-8 for more content types (#7961, @xu-cheng)
  • Remove bless from hex editors to avoid issues with macOS (#7937, @caiquejjx)
  • Improves is_mostly_bin check to support chinese characters (#7933, @caiquejjx, @mhils)
  • Fix various issues in infer_content_encoding (#7928, @xu-cheng)
  • Add example addon to spoof DNS responses. (#7973, @mhils)
  • Gracefully handle decoding of raw binary payloads that previously caused "Raw cannot decode" or "failed to parse as JSON" errors (#7940, @AdityaPatadiya)
  • Show query parameters for empty-body requests in the mitmproxy console. (#7923, @lups2000)
  • mitmweb is now built with Vite, improving the development workflow. (#7971, @sleeyax, @mhils)
  • Fix URL of mitmweb when --web-host is an IPv6 address. (#7963, @Julien00859)
  • Fix event loop leak when running tests (#7982, @DNEGEL3125)
  • Fix TypeScript build by adding React types and removing obsolete @ts-expect-error directives. (#7988, @DNEGEL3125)
View originalPermalink
How v12.2.1 went
v12.2.0

mitmproxy 12.2.0

Added 1
  • mitmproxy now supports Python 3.14, with binary releases shipping with 3.14 by default
Changed 1
  • Replace htpasswd file parser with a custom implementation to migrate off unmaintained passlib dependency, supporting only bcrypt and SHA-1 hashing

From mitmproxy

  • mitmproxy now supports Python 3.14. Binary releases ship with 3.14 by default. (#7918, @mhils)
  • Replace htpasswd file parser with a custom implementation to migrate off unmaintained passlib dependency. The new parser only supports bcrypt and SHA-1 hashing. Contributions for additional formats are welcome as long as they don't introduce new dependencies. (#7906, @mhils)
View originalPermalink
How v12.2.0 went
v12.1.2

mitmproxy 12.1.2

Added 1
  • Add syntax highlighting for CSS and JavaScript contentviews
Changed 3
  • Docker images are now built with Debian Trixie
  • Do not escape non-ascii characters in the JSON contentview
  • Display local timezone in the Timing tab of mitmweb
Fixed 5
  • Fix mitmweb auth cookie always using the default web_port option
  • Add missing content-length header in curl export
  • Update log message with correct header name
  • Fix crash in mitmweb when no explicit Server-Connection is logged
  • Prevent showing the quit message in the console when no flows are available under specific configurations
Security 1
  • Upgrade hyper-h2 to fix a request smuggling vulnerability that affects mitmproxy's HTTP/2 to HTTP/1 translation

From mitmproxy

  • Docker images are now build with Debian Trixie. (#7851, @mhils)
  • Fix mitmweb auth cookie always using the default web_port option. (#7827, @sujaldev)
  • fix: missing content-length header in curl export (#7810, @mheguy)
  • fix: update log message with correct header name (#7802, @kristof-mattei)
  • Update deprecated windows-2019 runner to windows-2025. (#7801, @chedieck)
  • Do not escape non-ascii characters in the JSON contentview. (#7740, @mhils)
  • Fix crash in mitmweb when no explicit Server-Connection is logged. (#7734, @lups2000)
  • Add syntax highlighting for CSS and JavaScript contentviews. (#7749, @mhils)
  • Display local timezone in the Timing tab of mitmweb. (#7804, @lups2000)
  • Prevent showing the quit message in the console when no flows are available under specific configurations. (#7833, @lups2000)
Security Fixes
  • GHSA-847f-9342-265h: Upgrade hyper-h2 to fix a request smuggling vulnerability that affects mitmproxy's HTTP/2 -> HTTP/1 translation. (@mhils)
View originalPermalink
How v12.1.2 went
v12.1.1

mitmproxy 12.1.1

Fixed 1
  • Fix a race condition when updating the flow list in mitmweb

From mitmproxy

  • Fix a race condition when updating the flow list in mitmweb. (#7729, @mhils)
View originalPermalink
How v12.1.1 went
v12.1.0

mitmproxy 12.1.0

Added 1
  • mitmweb now supports filtering by body contents using ~b, ~bq, and ~bs filters
Fixed 2
  • Fix raw response export incorrectly zeroing non-zero Content-Length header for HEAD requests
  • Fix concurrent mitmweb instances overwrite each other's auth cookie

From mitmproxy

  • mitmweb now supports filtering by body contents (~b, ~bq, ~bs). (#7704, @lups2000, @mhils)
  • Fix raw response export incorrectly zeroing non-zero Content-Length header for HEAD requests. (#7701, @sujaldev)
  • Fix concurrent mitmweb instances overwrite each other's auth cookie. (#7690, @turboOrange)
View originalPermalink
How v12.1.0 went
v12.0.1

mitmproxy 12.0.1

Added 1
  • Add an option to pass the web token as Authentication: Bearer ... header
Changed 1
  • In DNS proxy mode, user-provided addons now trigger before DNS resolution has taken place
Fixed 1
  • Fix a crash when editing raw messages bodies in mitmproxy

From mitmproxy

  • Fix a crash when editing raw messages bodies in mitmproxy. (#7697, @mhils)
  • Added an option to pass the web token as Authentication: Bearer ... header (#7681, @gschaer)
  • In DNS proxy mode, user-provided addons now trigger before DNS resolution has taken place. (#7685, @Florigolo)
View originalPermalink
How v12.0.1 went
v12.0.0

mitmproxy 12.0.0

Added 6
  • Contentviews can now be written in Rust for better performance and access to the crates ecosystem
  • Add a new feature to store streamed bodies for requests and responses
  • Add support for TLS 1.3 Post Handshake Authentication
  • Add CRL entries to dummy cert when the upstream certificate has some
  • Create content view for Socket.IO over WebSocket transport
  • Add support for selecting multiple flows in mitmweb using Ctrl+Click and Shift+Click with support for deleting, duplicating, marking, reverting, replaying, resuming, and aborting flows
Changed 6
  • Contentviews can now be interactive and re-encode prettified data, with syntax highlighting signaled off-band based on tree-sitter
  • Contentview API has been drastically simplified, with contentviews now returning a plain string with prettified data
  • Replace existing gRPC and Protobuf contentviews with an interactive contentview that supports both existing proto definitions and unknown protos
  • MsgPack contentview is now interactive
  • Adjust popover placement for browsers that support anchor positioning
  • mitmproxy.dns.Message has been renamed to mitmproxy.dns.DNSMessage
Fixed 8
  • Fix a bug where mitmproxy would incorrectly send empty HTTP/2 data frames
  • Fix a bug where mitmdump would exit prematurely in server replay mode
  • Fix a bug where WebSocket Messages view jumps to top when a message is received
  • Correctly forward HTTP_1_1_REQUIRED errors in HTTP/2 streams
  • Fix a bug where HAR export would crash for malformed flows
  • Fix a bug where mitmweb would crash when viewing flows with undefined headers
  • Fix a bug where mitmproxy does not listen on IPv4 and IPv6 by default in wireguard mode
  • Fix mitmweb crash when searching or highlighting using ~h, ~hq, or ~hs

From mitmproxy

New Contentview System (#7623, @mhils)
  • Contentviews can now be interactive and re-encode prettified data. For example, the new Protobuf view pretty-prints to YAML, which the user can edit and then re-serialize into binary representation.
  • Replace the existing gRPC and Protobuf contentviews with an interactive contentview that supports both existing proto definitions and completely unknown protos.
  • The MsgPack contentview is now interactive, too.
  • The contentview API has been drastically simplified. Contentviews now return a plain str with the prettified data. Syntax highlighting is now signaled off-band (and based on tree-sitter).
  • Docs: Add new documentation page and API reference for contentviews.
  • Contentviews can now be written in Rust for better performance and access to the crates ecosystem.
Other Changes
  • Add a new feature to store streamed bodies for requests and responses. (#7637, @mkiami)
  • Add support for TLS 1.3 Post Handshake Authentication. (#7576, @mhils, @cataggar)
  • Add search functionality to the documentation. (#7603, @mhils)
  • Introduce a new theme for docs.mitmproxy.org. (#7593, @mhils)
  • Add CRL entries to dummy cert when the upstream certificate has some. (#7609, @Yepoleb, @JordanPlayz158)
  • Fix a bug where mitmproxy would incorrectly send empty HTTP/2 data frames. (#7574, @mhils, @Dieken)
  • Enhance homebrew installation command for Brewfile users. (#7566, @AntoineJT)
  • Fix a bug where mitmdump would exit prematurely in server replay mode. (#7571, @mhils)
  • Fix a bug where WebSocket Messages view jumps to top when a message is received (#7572, @DenizenB)
  • Create content view for Socket.IO over WebSocket transport (#7570, @DenizenB)
  • Correctly forward HTTP_1_1_REQUIRED errors in HTTP/2 streams. (#7575, @mhils)
  • Fix a bug where HAR export would crash for malformed flows. (#7666, @mhils)
  • Fix a bug where mitmweb would crash when viewing flows with undefined headers. (#7595, @emanuele-em)
  • Fix a bug where mitmproxy does not listen on IPv4 and IPv6 by default in wireguard mode. (#7589, @errorxyz)
  • Adjust popover placement for browsers that support anchor positioning (Chrome, Edge) (#7642, @lups2000)
  • Fix mitmweb crash when searching or highlighting using ~h, ~hq, or ~hs. (#7652, @lups2000)
  • mitmproxy.dns.Message has been renamed to mitmproxy.dns.DNSMessage (#7670, @mhils)
  • Added support for selecting multiple flows in mitmweb using Ctrl+Click and Shift+Click. Multi-selection is now supported for deleting, duplicating, marking, reverting, replaying ,resuming, and aborting flows. (#7319, @lups2000, @mhils)
View originalPermalink
How v12.0.0 went
v11.1.3

mitmproxy 11.1.3

Added 3
  • Add documentation for local capture mode
  • Add a log message to point Docker mitmweb users towards web_password
  • Add help entries for all options in mitmweb that didn't have them
Changed 1
  • Revise documentation on proxy modes
Fixed 2
  • Fix several bugs in local capture mode by updating mitmproxy_rs dependency
  • Fix a bug where UTF-8 surrogates would crash the export addon

From mitmproxy

  • Update mitmproxy_rs dependency to fix several bugs in local capture mode. (#7564, @mhils)
  • Add documentation for local capture mode. (#7540, @mhils)
  • Revise documentation on proxy modes. (#7545, @mhils)
  • Add a log message to point Docker mitmweb users towards web_password. (#7554, @mhils)
  • Fix a bug where UTF-8 surrogates would crash the export addon. (#7562, @mhils)
  • Add help entries for all options in mitmweb that didn't have them. (#7563, @mhils)
View originalPermalink
How v11.1.3 went
View all

Discussion

If you publish mitmproxy, you can claim this product by proving you administer its repository.