[tac_plus] Cisco VPN 3000

John Payne john at sackheads.org
Fri May 30 16:06:12 UTC 2008


I'm getting the feeling I'm the only one using the NAC_address  
(connect_origin) field regularly, as neither Juniper nor Force10  
populate it :(

Anyhoo.  With the VPN 3000, I'm noticing that identity->NAC_address  
is getting 3 extra characters appended.  I suspect it's because  
rem_addr_len is off-by-3, but as it hasn't otherwise affected  
operation, I'm not sure if this is a potential crash waiting to happen.

As I know that all my device that do send connect_origin are going to  
be IP addresses, I think I can work around this.... but it does draw  
my attention to the lack of data validation in do_start(), for example:

     identity.NAC_address = tac_make_string(p, (int)start- 
 >rem_addr_len);
     p += start->rem_addr_len;
...
     bcopy(p, authen_data.client_data, start->data_len);

If rem_addr_len is wrong, isn't it possible for client_data to now  
contain data from uninitialized memory (past the "end" of pak)?




More information about the tac_plus mailing list