Information
The routing header can be used maliciously to send a packet through a path where less robust security is in place, rather than through the presumably preferred path of routing protocols. Use of the routing extension header has few legitimate uses other than as implemented by Mobile IPv6.
The Type 0 Routing Header (RFC 5095) is dangerous because it allows attackers to spoof source addresses and obtain traffic in response, rather than the real owner of the address. Secondly, a packet with an allowed destination address could be sent through a Firewall using the Routing Header functionality, only to bounce to a different node once inside. The Type 1 Routing Header is defined by a specification called 'Nimrod Routing', a discontinued project funded by DARPA. Assuming that most implementations will not recognize the Type 1 Routing Header, it must be dropped. The Type 3-255 Routing Header values in the routing type field are currently undefined and should be dropped inbound and outbound.
Solution
Configure the router to drop IPv6 packets with Routing Header of type 0, 1, or 3-255 as shown in the example below.
RP/0/0/CPU0:R3(config)# ipv6 access-list FILTER_IPV6
RP/0/0/CPU0:R3(config-ipv6-acl)# permit ipv6 any host 2001:DB8::0:1:1:1234 routing-type 2
RP/0/0/CPU0:R3(config-ipv6-acl)# deny ipv6 any any routing log
RP/0/0/CPU0:R3(config-ipv6-acl)# permit ...
...
...
...
RP/0/0/CPU0:R3(config-ipv6-acl)# deny ipv6 any any log
RP/0/0/CPU0:R3(config-ipv6-acl)# exit
RP/0/0/CPU0:R3(config)# interface gigabitethernet 0/2/0/2
RP/0/0/CPU0:R3(config-if)# ipv6 access-group FILTER_IPV6 ingress