Add packet length valid check

This commit is contained in:
风扇滑翔翼 2025-05-07 14:14:30 +00:00 committed by GitHub
parent 7484097da8
commit e3b9e2543b
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -4,8 +4,8 @@ import (
"crypto"
"crypto/aes"
"crypto/tls"
"fmt"
"encoding/binary"
"fmt"
"io"
"github.com/quic-go/quic-go/quicvarint"
@ -169,6 +169,10 @@ func SniffQUIC(b []byte) (*SniffHeader, error) {
return nil, err
}
// very stange packet length, maybe a fake QUIC header
if packetNumberLength > int(packetLen) {
return nil, errNotQuic
}
extHdrLen := hdrLen + packetNumberLength
data := b[extHdrLen : int(packetLen)+hdrLen]
decrypted, err := cipher.Open(b[extHdrLen:extHdrLen], nonce, data, b[:extHdrLen])