VYPR
High severity7.3NVD Advisory· Published May 4, 2026· Updated May 6, 2026

CVE-2026-7735

CVE-2026-7735

Description

A vulnerability was found in osrg GoBGP up to 4.3.0. Affected is the function PathAttributeAigp.DecodeFromBytes of the file pkg/packet/bgp/bgp.go of the component AIGP Attribute Parser. Performing a manipulation results in buffer overflow. It is possible to initiate the attack remotely. Upgrading to version 4.4.0 is able to address this issue. The patch is named 51ad1ada06cb41ce47b7066799981816f50b7ced. The affected component should be upgraded.

Affected products

2
  • Osrg/Gobgpinferred2 versions
    <=4.3.0+ 1 more
    • (no CPE)range: <=4.3.0
    • cpe:2.3:a:osrg:gobgp:*:*:*:*:*:*:*:*range: <4.4.0

Patches

1
51ad1ada06cb

packet/bgp: Fix AIGP PathAttribute parser to return errors

https://github.com/osrg/gobgpFUJITA TomonoriApr 1, 2026via nvd-ref
1 file changed · +6 4
  • pkg/packet/bgp/bgp.go+6 4 modified
    @@ -15279,25 +15279,26 @@ func (p *PathAttributeAigp) DecodeFromBytes(data []byte, options ...*Marshalling
     	if err != nil {
     		return err
     	}
    +	var values []AigpTLVInterface
     	for len(value) > 3 {
     		typ := value[0]
     		length := binary.BigEndian.Uint16(value[1:3])
     		if length <= 3 {
     			return NewMessageError(BGP_ERROR_MESSAGE_HEADER_ERROR, BGP_ERROR_SUB_BAD_MESSAGE_LENGTH, nil, "Malformed BGP message")
     		}
     		if len(value) < int(length) {
    -			break
    +			return NewMessageError(BGP_ERROR_UPDATE_MESSAGE_ERROR, BGP_ERROR_SUB_MALFORMED_ATTRIBUTE_LIST, nil, "Aigp TLV length exceeds remaining data")
     		}
     		v := value[3:length]
     		switch AigpTLVType(typ) {
     		case AIGP_TLV_IGP_METRIC:
     			if len(v) < 8 {
    -				break
    +				return NewMessageError(BGP_ERROR_UPDATE_MESSAGE_ERROR, BGP_ERROR_SUB_MALFORMED_ATTRIBUTE_LIST, nil, "Aigp IGP Metric TLV is too short")
     			}
     			metric := binary.BigEndian.Uint64(v)
    -			p.Values = append(p.Values, NewAigpTLVIgpMetric(metric))
    +			values = append(values, NewAigpTLVIgpMetric(metric))
     		default:
    -			p.Values = append(p.Values, NewAigpTLVDefault(AigpTLVType(typ), v))
    +			values = append(values, NewAigpTLVDefault(AigpTLVType(typ), v))
     		}
     		value = value[length:]
     	}
    @@ -15306,6 +15307,7 @@ func (p *PathAttributeAigp) DecodeFromBytes(data []byte, options ...*Marshalling
     		eSubCode := uint8(BGP_ERROR_SUB_MALFORMED_ATTRIBUTE_LIST)
     		return NewMessageError(eCode, eSubCode, nil, "Aigp length is incorrect")
     	}
    +	p.Values = values
     	return nil
     }
     
    

Vulnerability mechanics

AI mechanics synthesis has not run for this CVE yet.

References

5

News mentions

0

No linked articles in our index yet.