Goal Reached Thanks to every supporter — we hit 100%!

Goal: 1000 CNY · Raised: 1000 CNY

100.0%

CVE-2021-43848 PoC — h2o 安全漏洞

Source
Associated Vulnerability
Title:h2o 安全漏洞 (CVE-2021-43848)
Description:h2o是新一代的 HTTP 服务器。与老一代的 HTTP 服务器相比,它不仅速度非常快,而且还为最终用户提供了更快的响应。 h2o 存在安全漏洞,该漏洞源于当以特定顺序接收 QUIC 帧时,h2o 的 HTTP/3 服务器端实现可能会被误导,将未初始化的内存视为已接收的 HTTP/3 帧。当 h2o 用作反向代理时,攻击者可以利用此漏洞将 h2o 的内部状态发送到攻击者或第三方控制的后端服务器。此外,如果有一个 HTTP 端点反映从客户端发送的流量,攻击者可以使用该反射器获取 h2o 的内部状态。此内部状
Description
exploit for CVE-2021-43848
Readme
The code in this repo is a PoC for CVE-2021-43848 and of very low quality.

I have no plans to maintain it in any way.
File Snapshot

[4.0K] /data/pocs/e19f5d73a0527d93ce2765077e1c79d763b43c79 ├── [1.0K] go.mod ├── [ 28K] go.sum ├── [8.3K] main.go ├── [4.0K] patched-quic-go │   ├── [4.0K] benchmark │   │   ├── [ 425] benchmark_suite_test.go │   │   └── [2.7K] benchmark_test.go │   ├── [1.8K] buffer_pool.go │   ├── [1.2K] buffer_pool_test.go │   ├── [4.4K] Changelog.md │   ├── [9.2K] client.go │   ├── [ 18K] client_test.go │   ├── [2.9K] closed_session.go │   ├── [1.5K] closed_session_test.go │   ├── [ 567] codecov.yml │   ├── [4.1K] config.go │   ├── [5.9K] config_test.go │   ├── [ 377] conn_generic.go │   ├── [1.8K] conn.go │   ├── [ 458] conn_helper_darwin.go │   ├── [ 313] conn_helper_freebsd.go │   ├── [ 451] conn_helper_linux.go │   ├── [4.4K] conn_id_generator.go │   ├── [7.3K] conn_id_generator_test.go │   ├── [6.6K] conn_id_manager.go │   ├── [ 14K] conn_id_manager_test.go │   ├── [7.5K] conn_oob.go │   ├── [7.1K] conn_oob_test.go │   ├── [ 897] conn_test.go │   ├── [1.3K] conn_windows.go │   ├── [ 803] conn_windows_test.go │   ├── [3.0K] crypto_stream.go │   ├── [1.6K] crypto_stream_manager.go │   ├── [4.6K] crypto_stream_manager_test.go │   ├── [5.7K] crypto_stream_test.go │   ├── [1.8K] datagram_queue.go │   ├── [2.5K] datagram_queue_test.go │   ├── [4.0K] docs │   │   ├── [ 17K] quic.png │   │   ├── [ 88K] quic.sketch │   │   └── [ 11K] quic.svg │   ├── [1.9K] errors.go │   ├── [4.0K] example │   │   ├── [4.0K] client │   │   │   └── [2.4K] main.go │   │   ├── [ 134] Dockerfile │   │   ├── [4.0K] echo │   │   │   └── [2.5K] echo.go │   │   └── [5.2K] main.go │   ├── [4.9K] framer.go │   ├── [ 16K] framer_test.go │   ├── [5.8K] frame_sorter.go │   ├── [ 40K] frame_sorter_test.go │   ├── [4.0K] fuzzing │   │   ├── [4.0K] frames │   │   │   ├── [4.0K] cmd │   │   │   │   └── [7.8K] corpus.go │   │   │   └── [1.9K] fuzz.go │   │   ├── [4.0K] handshake │   │   │   ├── [4.0K] cmd │   │   │   │   └── [3.9K] corpus.go │   │   │   └── [ 13K] fuzz.go │   │   ├── [4.0K] header │   │   │   ├── [4.0K] cmd │   │   │   │   └── [4.3K] corpus.go │   │   │   └── [2.6K] fuzz.go │   │   ├── [4.0K] internal │   │   │   └── [4.0K] helper │   │   │   ├── [2.3K] helper.go │   │   │   ├── [ 186] helper_suite_test.go │   │   │   └── [2.1K] helper_test.go │   │   ├── [4.0K] tokens │   │   │   └── [3.5K] fuzz.go │   │   └── [4.0K] transportparameters │   │   ├── [4.0K] cmd │   │   │   └── [2.9K] corpus.go │   │   └── [1.5K] fuzz.go │   ├── [4.0K] http3 │   │   ├── [2.0K] body.go │   │   ├── [5.0K] body_test.go │   │   ├── [ 10K] client.go │   │   ├── [ 28K] client_test.go │   │   ├── [1.9K] error_codes.go │   │   ├── [1.2K] error_codes_test.go │   │   ├── [3.0K] frames.go │   │   ├── [5.7K] frames_test.go │   │   ├── [ 798] gzip_reader.go │   │   ├── [ 724] http3_suite_test.go │   │   ├── [1.9K] request.go │   │   ├── [5.0K] request_test.go │   │   ├── [8.4K] request_writer.go │   │   ├── [4.4K] request_writer_test.go │   │   ├── [3.2K] response_writer.go │   │   ├── [4.7K] response_writer_test.go │   │   ├── [5.7K] roundtrip.go │   │   ├── [8.2K] roundtrip_test.go │   │   ├── [ 16K] server.go │   │   └── [ 30K] server_test.go │   ├── [ 15K] interface.go │   ├── [4.0K] internal_ │   │   ├── [4.0K] ackhandler │   │   │   ├── [ 550] ack_eliciting.go │   │   │   ├── [ 856] ack_eliciting_test.go │   │   │   ├── [ 768] ackhandler.go │   │   │   ├── [ 463] ackhandler_suite_test.go │   │   │   ├── [ 247] frame.go │   │   │   ├── [ 136] gen.go │   │   │   ├── [2.4K] interfaces.go │   │   │   ├── [ 184] mockgen.go │   │   │   ├── [2.2K] mock_sent_packet_tracker_test.go │   │   │   ├── [6.3K] packet_linkedlist.go │   │   │   ├── [2.1K] packet_number_generator.go │   │   │   ├── [3.0K] packet_number_generator_test.go │   │   │   ├── [4.4K] received_packet_handler.go │   │   │   ├── [8.9K] received_packet_handler_test.go │   │   │   ├── [3.8K] received_packet_history.go │   │   │   ├── [ 14K] received_packet_history_test.go │   │   │   ├── [5.5K] received_packet_tracker.go │   │   │   ├── [ 14K] received_packet_tracker_test.go │   │   │   ├── [ 943] send_mode.go │   │   │   ├── [ 577] send_mode_test.go │   │   │   ├── [ 28K] sent_packet_handler.go │   │   │   ├── [ 59K] sent_packet_handler_test.go │   │   │   ├── [2.6K] sent_packet_history.go │   │   │   └── [8.1K] sent_packet_history_test.go │   │   ├── [4.0K] congestion │   │   │   ├── [ 624] bandwidth.go │   │   │   ├── [ 267] bandwidth_test.go │   │   │   ├── [ 334] clock.go │   │   │   ├── [ 198] congestion_suite_test.go │   │   │   ├── [8.4K] cubic.go │   │   │   ├── [9.7K] cubic_sender.go │   │   │   ├── [ 19K] cubic_sender_test.go │   │   │   ├── [ 10K] cubic_test.go │   │   │   ├── [4.0K] hybrid_slow_start.go │   │   │   ├── [2.2K] hybrid_slow_start_test.go │   │   │   ├── [1.0K] interface.go │   │   │   ├── [2.5K] pacer.go │   │   │   └── [4.2K] pacer_test.go │   │   ├── [4.0K] flowcontrol │   │   │   ├── [3.7K] base_flow_controller.go │   │   │   ├── [9.0K] base_flow_controller_test.go │   │   │   ├── [3.4K] connection_flow_controller.go │   │   │   ├── [5.1K] connection_flow_controller_test.go │   │   │   ├── [ 388] flowcontrol_suite_test.go │   │   │   ├── [1.4K] interface.go │   │   │   ├── [4.7K] stream_flow_controller.go │   │   │   └── [9.7K] stream_flow_controller_test.go │   │   ├── [4.0K] handshake │   │   │   ├── [4.4K] aead.go │   │   │   ├── [7.2K] aead_test.go │   │   │   ├── [ 23K] crypto_setup.go │   │   │   ├── [ 27K] crypto_setup_test.go │   │   │   ├── [ 971] handshake_suite_test.go │   │   │   ├── [3.4K] header_protector.go │   │   │   ├── [ 860] hkdf.go │   │   │   ├── [ 741] hkdf_test.go │   │   │   ├── [2.2K] initial_aead.go │   │   │   ├── [ 15K] initial_aead_test.go │   │   │   ├── [3.5K] interface.go │   │   │   ├── [ 176] mockgen.go │   │   │   ├── [2.9K] mock_handshake_runner_test.go │   │   │   ├── [1.7K] retry.go │   │   │   ├── [1.6K] retry_test.go │   │   │   ├── [1.2K] session_ticket.go │   │   │   ├── [1.8K] session_ticket_test.go │   │   │   ├── [1.7K] tls_extension_handler.go │   │   │   ├── [5.9K] tls_extension_handler_test.go │   │   │   ├── [3.5K] token_generator.go │   │   │   ├── [4.1K] token_generator_test.go │   │   │   ├── [2.1K] token_protector.go │   │   │   ├── [1.7K] token_protector_test.go │   │   │   ├── [ 11K] updatable_aead.go │   │   │   └── [ 23K] updatable_aead_test.go │   │   ├── [4.0K] logutils │   │   │   ├── [ 922] frame.go │   │   │   ├── [1.6K] frame_test.go │   │   │   └── [ 192] logutils_suite_test.go │   │   ├── [4.0K] mocks │   │   │   ├── [4.0K] ackhandler │   │   │   │   ├── [4.2K] received_packet_handler.go │   │   │   │   └── [9.2K] sent_packet_handler.go │   │   │   ├── [7.9K] congestion.go │   │   │   ├── [4.8K] connection_flow_controller.go │   │   │   ├── [9.6K] crypto_setup.go │   │   │   ├── [4.0K] logging │   │   │   │   ├── [ 15K] connection_tracer.go │   │   │   │   └── [2.8K] tracer.go │   │   │   ├── [2.8K] long_header_opener.go │   │   │   ├── [3.3K] mockgen.go │   │   │   ├── [4.0K] quic │   │   │   │   ├── [2.4K] early_listener.go │   │   │   │   ├── [8.8K] early_session.go │   │   │   │   └── [5.5K] stream.go │   │   │   ├── [3.0K] short_header_opener.go │   │   │   ├── [3.1K] short_header_sealer.go │   │   │   ├── [5.3K] stream_flow_controller.go │   │   │   └── [4.0K] tls │   │   │   └── [2.0K] client_session_cache.go │   │   ├── [4.0K] protocol │   │   │   ├── [1.6K] connection_id.go │   │   │   ├── [2.9K] connection_id_test.go │   │   │   ├── [ 689] encryption_level.go │   │   │   ├── [ 594] encryption_level_test.go │   │   │   ├── [ 626] key_phase.go │   │   │   ├── [ 771] key_phase_test.go │   │   │   ├── [2.3K] packet_number.go │   │   │   ├── [6.8K] packet_number_test.go │   │   │   ├── [9.5K] params.go │   │   │   ├── [ 364] params_test.go │   │   │   ├── [ 501] perspective.go │   │   │   ├── [ 537] perspective_test.go │   │   │   ├── [3.0K] protocol.go │   │   │   ├── [ 192] protocol_suite_test.go │   │   │   ├── [ 796] protocol_test.go │   │   │   ├── [1.8K] stream.go │   │   │   ├── [3.0K] stream_test.go │   │   │   ├── [3.4K] version.go │   │   │   └── [4.2K] version_test.go │   │   ├── [4.0K] qerr │   │   │   ├── [2.5K] error_codes.go │   │   │   ├── [1.6K] errorcodes_test.go │   │   │   ├── [3.3K] errors.go │   │   │   ├── [ 188] errors_suite_test.go │   │   │   └── [4.1K] errors_test.go │   │   ├── [4.0K] qtls │   │   │   ├── [3.0K] go116.go │   │   │   ├── [3.0K] go117.go │   │   │   ├── [ 102] go118.go │   │   │   ├── [ 380] qtls_suite_test.go │   │   │   └── [ 372] qtls_test.go │   │   ├── [4.0K] testdata │   │   │   ├── [1.0K] ca.pem │   │   │   ├── [1.2K] cert.go │   │   │   ├── [1.0K] cert.pem │   │   │   ├── [ 748] cert_test.go │   │   │   ├── [ 676] generate_key.sh │   │   │   ├── [1.7K] priv.key │   │   │   └── [ 192] testdata_suite_test.go │   │   ├── [4.0K] testutils │   │   │   └── [3.1K] testutils.go │   │   ├── [4.0K] utils │   │   │   ├── [ 331] atomic_bool.go │   │   │   ├── [ 468] atomic_bool_test.go │   │   │   ├── [ 481] buffered_write_closer.go │   │   │   ├── [ 515] buffered_write_closer_test.go │   │   │   ├── [6.7K] byteinterval_linkedlist.go │   │   │   ├── [2.6K] byteoder_big_endian_test.go │   │   │   ├── [2.0K] byteorder_big_endian.go │   │   │   ├── [ 408] byteorder.go │   │   │   ├── [ 367] gen.go │   │   │   ├── [ 294] ip.go │   │   │   ├── [ 374] ip_test.go │   │   │   ├── [4.0K] linkedlist │   │   │   │   ├── [6.2K] linkedlist.go │   │   │   │   └── [ 324] README.md │   │   │   ├── [2.8K] log.go │   │   │   ├── [3.9K] log_test.go │   │   │   ├── [2.8K] minmax.go │   │   │   ├── [3.7K] minmax_test.go │   │   │   ├── [ 286] new_connection_id.go │   │   │   ├── [6.9K] newconnectionid_linkedlist.go │   │   │   ├── [ 243] packet_interval.go │   │   │   ├── [6.8K] packetinterval_linkedlist.go │   │   │   ├── [ 623] rand.go │   │   │   ├── [ 541] rand_test.go │   │   │   ├── [3.9K] rtt_stats.go │   │   │   ├── [6.3K] rtt_stats_test.go │   │   │   ├── [ 230] streamframe_interval.go │   │   │   ├── [1.1K] timer.go │   │   │   ├── [2.0K] timer_test.go │   │   │   └── [ 184] utils_suite_test.go │   │   └── [4.0K] wire │   │   ├── [6.5K] ack_frame.go │   │   ├── [ 17K] ack_frame_test.go │   │   ├── [ 353] ack_range.go │   │   ├── [ 311] ack_range_test.go │   │   ├── [2.2K] connection_close_frame.go │   │   ├── [5.4K] connection_close_frame_test.go │   │   ├── [2.7K] crypto_frame.go │   │   ├── [4.6K] crypto_frame_test.go │   │   ├── [ 948] data_blocked_frame.go │   │   ├── [1.6K] data_blocked_frame_test.go │   │   ├── [1.9K] datagram_frame.go │   │   ├── [5.1K] datagram_frame_test.go │   │   ├── [7.1K] extended_header.go │   │   ├── [ 16K] extended_header_test.go │   │   ├── [3.7K] frame_parser.go │   │   ├── [ 14K] frame_parser_test.go │   │   ├── [ 687] handshake_done_frame.go │   │   ├── [6.8K] header.go │   │   ├── [ 22K] header_test.go │   │   ├── [ 441] interface.go │   │   ├── [3.1K] log.go │   │   ├── [5.1K] log_test.go │   │   ├── [1.0K] max_data_frame.go │   │   ├── [1.6K] max_data_frame_test.go │   │   ├── [1.2K] max_stream_data_frame.go │   │   ├── [2.0K] max_stream_data_frame_test.go │   │   ├── [1.3K] max_streams_frame.go │   │   ├── [3.4K] max_streams_frame_test.go │   │   ├── [2.1K] new_connection_id_frame.go │   │   ├── [4.6K] new_connection_id_frame_test.go │   │   ├── [1.1K] new_token_frame.go │   │   ├── [2.3K] new_token_frame_test.go │   │   ├── [ 832] path_challenge_frame.go │   │   ├── [1.4K] path_challenge_frame_test.go │   │   ├── [ 824] path_response_frame.go │   │   ├── [1.4K] path_response_frame_test.go │   │   ├── [ 569] ping_frame.go │   │   ├── [ 943] ping_frame_test.go │   │   ├── [ 581] pool.go │   │   ├── [ 537] pool_test.go │   │   ├── [1.5K] reset_stream_frame.go │   │   ├── [2.3K] reset_stream_frame_test.go │   │   ├── [ 915] retire_connection_id_frame.go │   │   ├── [1.5K] retire_connection_id_frame_test.go │   │   ├── [1.2K] stop_sending_frame.go │   │   ├── [2.0K] stop_sending_frame_test.go │   │   ├── [1.2K] stream_data_blocked_frame.go │   │   ├── [1.9K] stream_data_blocked_frame_test.go │   │   ├── [4.7K] stream_frame.go │   │   ├── [ 15K] stream_frame_test.go │   │   ├── [1.3K] streams_blocked_frame.go │   │   ├── [3.5K] streams_blocked_frame_test.go │   │   ├── [ 19K] transport_parameters.go │   │   ├── [ 27K] transport_parameter_test.go │   │   ├── [1.8K] version_negotiation.go │   │   ├── [3.4K] version_negotiation_test.go │   │   └── [ 516] wire_suite_test.go │   ├── [4.0K] interop │   │   ├── [4.0K] client │   │   │   └── [4.9K] main.go │   │   ├── [1.1K] Dockerfile │   │   ├── [4.0K] http09 │   │   │   ├── [3.4K] client.go │   │   │   ├── [ 188] http09_suite_test.go │   │   │   ├── [2.1K] http_test.go │   │   │   └── [2.9K] server.go │   │   ├── [ 484] run_endpoint.sh │   │   ├── [4.0K] server │   │   │   └── [2.4K] main.go │   │   └── [4.0K] utils │   │   └── [1.3K] logging.go │   ├── [1.1K] LICENSE │   ├── [4.0K] logging │   │   ├── [2.1K] frame.go │   │   ├── [5.2K] interface.go │   │   ├── [ 382] logging_suite_test.go │   │   ├── [ 15K] mock_connection_tracer_test.go │   │   ├── [ 491] mockgen.go │   │   ├── [2.7K] mock_tracer_test.go │   │   ├── [5.6K] multiplex.go │   │   ├── [9.7K] multiplex_test.go │   │   ├── [ 637] packet_header.go │   │   ├── [1.7K] packet_header_test.go │   │   └── [3.7K] types.go │   ├── [1.7K] mock_ack_frame_source_test.go │   ├── [1.4K] mock_batch_conn_test.go │   ├── [1.6K] mock_crypto_data_handler_test.go │   ├── [3.9K] mock_crypto_stream_test.go │   ├── [2.8K] mock_frame_source_test.go │   ├── [3.2K] mockgen.go │   ├── [1.4K] mockgen_private.sh │   ├── [2.6K] mock_mtu_discoverer_test.go │   ├── [2.1K] mock_multiplexer_test.go │   ├── [6.6K] mock_packer_test.go │   ├── [4.3K] mock_packetconn_test.go │   ├── [6.6K] mock_packet_handler_manager_test.go │   ├── [2.7K] mock_packet_handler_test.go │   ├── [ 12K] mock_quic_session_test.go │   ├── [5.1K] mock_receive_stream_internal_test.go │   ├── [3.3K] mock_sealing_manager_test.go │   ├── [2.5K] mock_send_conn_test.go │   ├── [2.7K] mock_sender_test.go │   ├── [6.3K] mock_send_stream_internal_test.go │   ├── [4.5K] mock_session_runner_test.go │   ├── [2.2K] mock_stream_getter_test.go │   ├── [9.6K] mock_stream_internal_test.go │   ├── [8.4K] mock_stream_manager_test.go │   ├── [2.5K] mock_stream_sender_test.go │   ├── [1.7K] mock_token_store_test.go │   ├── [1.9K] mock_unknown_packet_handler_test.go │   ├── [1.5K] mock_unpacker_test.go │   ├── [2.3K] mtu_discoverer.go │   ├── [3.4K] mtu_discoverer_test.go │   ├── [2.8K] multiplexer.go │   ├── [3.1K] multiplexer_test.go │   ├── [ 13K] packet_handler_map.go │   ├── [ 18K] packet_handler_map_test.go │   ├── [ 28K] packet_packer.go │   ├── [ 81K] packet_packer_test.go │   ├── [6.2K] packet_unpacker.go │   ├── [ 12K] packet_unpacker_test.go │   ├── [4.0K] qlog │   │   ├── [ 18K] event.go │   │   ├── [1.2K] event_test.go │   │   ├── [7.1K] frame.go │   │   ├── [8.0K] frame_test.go │   │   ├── [3.3K] packet_header.go │   │   ├── [4.8K] packet_header_test.go │   │   ├── [ 14K] qlog.go │   │   ├── [1.3K] qlog_suite_test.go │   │   ├── [ 36K] qlog_test.go │   │   ├── [1.6K] trace.go │   │   ├── [7.2K] types.go │   │   └── [7.2K] types_test.go │   ├── [ 524] quic_suite_test.go │   ├── [4.0K] quicvarint │   │   ├── [1.2K] io.go │   │   ├── [1.5K] io_test.go │   │   ├── [ 204] quicvarint_suite_test.go │   │   ├── [3.1K] varint.go │   │   └── [6.4K] varint_test.go │   ├── [4.4K] README.md │   ├── [8.2K] receive_stream.go │   ├── [ 22K] receive_stream_test.go │   ├── [3.2K] retransmission_queue.go │   ├── [6.5K] retransmission_queue_test.go │   ├── [1.3K] send_conn.go │   ├── [ 958] send_conn_test.go │   ├── [1.8K] send_queue.go │   ├── [2.9K] send_queue_test.go │   ├── [ 13K] send_stream.go │   ├── [ 39K] send_stream_test.go │   ├── [ 20K] server.go │   ├── [ 45K] server_test.go │   ├── [ 61K] session.go │   ├── [114K] session_test.go │   ├── [4.4K] stream.go │   ├── [ 514] streams_map_generic_helper.go │   ├── [9.5K] streams_map.go │   ├── [5.4K] streams_map_incoming_bidi.go │   ├── [5.5K] streams_map_incoming_generic.go │   ├── [9.8K] streams_map_incoming_generic_test.go │   ├── [5.5K] streams_map_incoming_uni.go │   ├── [5.5K] streams_map_outgoing_bidi.go │   ├── [5.5K] streams_map_outgoing_generic.go │   ├── [ 16K] streams_map_outgoing_generic_test.go │   ├── [5.5K] streams_map_outgoing_uni.go │   ├── [ 17K] streams_map_test.go │   ├── [3.3K] stream_test.go │   ├── [2.5K] token_store.go │   ├── [3.2K] token_store_test.go │   ├── [ 127] tools.go │   ├── [1.8K] window_update_queue.go │   └── [3.9K] window_update_queue_test.go └── [ 119] README.md 46 directories, 402 files
Shenlong Bot has cached this for you
Remarks
    1. It is advised to access via the original source first.
    2. If the original source is unavailable, please email f.jinxu#gmail.com for a local snapshot (replace # with @).
    3. Shenlong has snapshotted the POC code for you. To support long-term maintenance, please consider donating. Thank you for your support.