You are on page 1of 18

[/home/raschaef/Documents/153/P2/lsu]

[AAD07FF516179CC3478459387E5D6161 : low : Dangerous Function : strcpy() : semant


ic ]
lsu.c(101) : strcpy()
[869164F66213598A0A8FAD9B41081B46 : low : Dangerous Function : strcpy() : semant
ic ]
lsu.c(103) : strcpy()
[C3BE4661840BDA5568A433F05537B73B : low : Format String : semantic ]
lsu.c(222) : err()
[CB0EDD1B757C50272B0F5EB412E15220 : low : Format String : semantic ]
lsu.c(282) : sprintf()
[AF4EDC026027D88CC84FF226A3AE817F : low : Dangerous Function : strcpy() : semant
ic ]
perm.c(49) : strcpy()
[5876683D91B8CCC178E004068A8CDB52 : low : Dangerous Function : strcpy() : semant
ic ]
perm.c(51) : strcpy()
[DE6F19B74C839961CDCF98D0C6D90074 : low : Format String : semantic ]
perm.c(105) : err()
[DE6F19B74C839961CDCF98D0C6D90073 : low : Format String : semantic ]
perm.c(117) : err()
[AF4EDC026027D88CC84FF226A3AE817E : low : Dangerous Function : strcpy() : semant
ic ]
perm.c(129) : strcpy()
[AF4EDC026027D88CC84FF226A3AE817D : low : Dangerous Function : strcpy() : semant
ic ]
perm.c(158) : strcpy()
[3E123A3292D3C45D9E5A9F50A1490E42 : low : Format String : semantic ]
perm.c(278) : err()
[FF2A3104B34B165FD66AC912F40D0A89 : low : Format String : semantic ]
syntax.c(108) : err()
[FF2A3104B34B165FD66AC912F40D0A87 : low : Format String : semantic ]
syntax.c(142) : err()
[FF2A3104B34B165FD66AC912F40D0A85 : low : Format String : semantic ]
syntax.c(186) : err()
[FF2A3104B34B165FD66AC912F40D0A84 : low : Format String : semantic ]
syntax.c(206) : err()
[03CEECC472484CCA37BEDDD4E3E88550 : low : Obsolete : semantic ]
util.c(131) : getpass()
[A414B99F7A23292BC06FDC26AA8C8FEC : medium : Weak Cryptographic Hash : semantic
]
util.c(133) : crypt()

[1860D63F98EE38DD174239A60B08FD36 : low : Dangerous Function : strcpy() : semant


ic ]
util.c(168) : strcpy()
[27F1F9E1D550B2DE434A32BD610A7B0C : low : Dangerous Function : strcpy() : semant
ic ]
util.c(193) : strcpy()
[0DC8BE4CDC9B3A9673CA55B1FED959C2 : low : Format String : semantic ]
util.c(247) : sprintf()
[35770D755693AAC6FC9FF2ADE1BD9A93 : low : Format String : semantic ]
util.c(274) : sprintf()
[CAA7EAC5823D597060E4CE85E70C8B57 : low : Heap Inspection : semantic ]
y.tab.c(959) : realloc()
[CE92A0B19EB0AC70BB556857C03E6563 : low : Heap Inspection : semantic ]
y.tab.c(966) : realloc()
[0038C4AE6F785C6B1D2ADAE984E79CEF : low : Heap Inspection : semantic ]
y.tab.c(1017) : realloc()
[8CAAC6432BB25C37922B4E574C07A811 : low : Heap Inspection : semantic ]
y.tab.c(1024) : realloc()
[8411C565673E5E168AACE7CE75FC572A : high : Buffer Overflow : Format String : dat
aflow ]
syntax.c(56) : ->sprintf(2)
lsu.c(80) : ->permsyntax(0[])
lsu.c(80) : <=> (argv)
lsu.c(61) : ->main(1)
[27818011B74AAF7F0FFC2673186E546A : high : Buffer Overflow : Format String : dat
aflow ]
util.c(60) : ->sprintf(2)
lsu.c(73) : ->setname(0)
lsu.c(61) : ->main(1)
[5A6D5C9AB55ED1EFB507B9EDBD786CA5 : high : Buffer Overflow : Format String : dat
aflow ]
perm.c(185) : ->sprintf(2)
lsu.c(117) : ->getnewuser(0)
lsu.c(101) : <->strcpy(1->0)
lsu.c(92) : <=> (towho)
util.c(169) : return (p)
util.c(168) : <->strcpy(1->0)
lsu.c(92) : <->strsave(0->return)
lsu.c(61) : ->main(1)
[45BFC3113B7C4190582D6542AF0E867B : high : Buffer Overflow : Format String : dat
aflow ]
util.c(187) : ->sprintf(2)
util.c(61) : ->err(1)
util.c(60) : <->sprintf(2->0)
lsu.c(73) : ->setname(0)
lsu.c(61) : ->main(1)
[7367AEC32167BBD470E19853315656FA : high : Buffer Overflow : Format String : dat

aflow ]
util.c(187) : ->sprintf(2)
tty.y(698) : ->err(1)
tty.y(697) : <->sprintf(4->0)
tty.y(697) : <=> (lptr)
tty.y(697) : (lptr)
tty.y(658) : <=> (lptr)
perm.c(103) : <->isintty(0->{lptr})
perm.c(77) : <=> (b)
perm.c(62) : <- fgets(0)
[6AD6C1375945C7A42AD94E48C3147400 : high : Buffer Overflow : Format String : dat
aflow ]
util.c(190) : ->sprintf(2)
util.c(61) : ->err(1)
util.c(60) : <->sprintf(2->0)
lsu.c(73) : ->setname(0)
lsu.c(61) : ->main(1)
[5BBB1EDB50C28A4DB242E558160AF883 : high : Buffer Overflow : Format String : dat
aflow ]
util.c(190) : ->sprintf(2)
tty.y(698) : ->err(1)
tty.y(697) : <->sprintf(4->0)
tty.y(697) : <=> (lptr)
tty.y(697) : (lptr)
tty.y(658) : <=> (lptr)
perm.c(103) : <->isintty(0->{lptr})
perm.c(77) : <=> (b)
perm.c(62) : <- fgets(0)
[12B1B389E7E8C8B2775C15A9AE124560 : high : Buffer Overflow : Format String : dat
aflow ]
util.c(187) : ->sprintf(2)
syntax.c(127) : ->err(1)
syntax.c(126) : <->sprintf(3->0)
syntax.c(116) : <=> (f)
syntax.c(105) : <=> (b)
syntax.c(95) : <- fgets(0)
[BE32F2288AD335A114A332CFE16FD5D5 : high : Buffer Overflow : Format String : dat
aflow ]
util.c(190) : ->sprintf(2)
syntax.c(127) : ->err(1)
syntax.c(126) : <->sprintf(3->0)
syntax.c(116) : <=> (f)
syntax.c(105) : <=> (b)
syntax.c(95) : <- fgets(0)
[A580DB865091C50DFCF56E8F86B4E827 : high : Buffer Overflow : Format String : dat
aflow ]
log.c(91) : ->sprintf(2)
log.c(91) : (curpw.pw_name)
lsu.c(224) : <=> (curpw.pw_name)
util.c(169) : return (p)
util.c(168) : <->strcpy(1->0)
lsu.c(224) : <->strsave(0->return)
lsu.c(220) : <=> (pw)
lsu.c(220) : <- getpwuid(return)

[162A2367E1F32FC3584A1858E8837179 : high : Buffer Overflow : Format String : dat


aflow ]
perm.c(185) : ->sprintf(2)
lsu.c(117) : ->getnewuser(0)
lsu.c(111) : <- perms(0)
perm.c(51) : <->strcpy(1->0)
lsu.c(224) : <=> (curpw.pw_name)
util.c(169) : return (p)
util.c(168) : <->strcpy(1->0)
lsu.c(224) : <->strsave(0->return)
lsu.c(220) : <=> (pw)
lsu.c(220) : <- getpwuid(return)
[38B36737985115BC096C9476D02C266F : high : Buffer Overflow : Format String : dat
aflow ]
util.c(187) : ->sprintf(2)
lsu.c(137) : ->err(1)
lsu.c(111) : <- perms(0)
perm.c(51) : <->strcpy(1->0)
lsu.c(224) : <=> (curpw.pw_name)
util.c(169) : return (p)
util.c(168) : <->strcpy(1->0)
lsu.c(224) : <->strsave(0->return)
lsu.c(220) : <=> (pw)
lsu.c(220) : <- getpwuid(return)
[980E29D70E0A3D8501894FC9CBC40D4C : high : Buffer Overflow : Format String : dat
aflow ]
util.c(190) : ->sprintf(2)
lsu.c(137) : ->err(1)
lsu.c(111) : <- perms(0)
perm.c(51) : <->strcpy(1->0)
lsu.c(224) : <=> (curpw.pw_name)
util.c(169) : return (p)
util.c(168) : <->strcpy(1->0)
lsu.c(224) : <->strsave(0->return)
lsu.c(220) : <=> (pw)
lsu.c(220) : <- getpwuid(return)
[219D4B882C7BC7BBA05D57582BE30A9B : high : Buffer Overflow : Format String : dat
aflow ]
util.c(187) : ->sprintf(2)
perm.c(258) : ->err(1)
perm.c(250) : <->sprintf(2->0)
perm.c(244) : <=> (tpw)
perm.c(244) : <- getpwuid(return)
[EF869E911E234E002ED53D2375360DB2 : high : Buffer Overflow : Format String : dat
aflow ]
util.c(190) : ->sprintf(2)
perm.c(258) : ->err(1)
perm.c(250) : <->sprintf(2->0)
perm.c(244) : <=> (tpw)
perm.c(244) : <- getpwuid(return)
[B07018A20AF8BEE889275F9FA5AAA121 : high : Buffer Overflow : Format String : dat
aflow ]
perm.c(250) : ->sprintf(2)
perm.c(244) : <=> (tpw)
perm.c(244) : <- getpwuid(return)

[A22E8BBB7475DD5C7787A194117AD8AA : high : Buffer Overflow : Format String : dat


aflow ]
tty.y(697) : ->sprintf(4)
tty.y(697) : <=> (lptr)
tty.y(697) : (lptr)
tty.y(658) : <=> (lptr)
perm.c(103) : <->isintty(0->{lptr})
perm.c(77) : <=> (b)
perm.c(62) : <- fgets(0)
[3C94E2E45F0B27A6996E7ABBD9B61C91 : high : Buffer Overflow : Format String : dat
aflow ]
tty.y(697) : ->sprintf(4)
tty.y(697) : <=> (lptr)
tty.y(697) : (lptr)
tty.y(658) : <=> (lptr)
syntax.c(194) : <->isintty(0->{lptr})
syntax.c(193) : <=> (f)
syntax.c(159) : taint change {+NULL_TERMINATED-NOT_NULL_TERMINATED,-NOT_NULL
_TERM_TRUNCATE}
syntax.c(159) : <=> (b)
syntax.c(105) : <=> (b)
syntax.c(95) : <- fgets(0)
[2446D18BC12413E05E1E02970A89CB93 : high : Buffer Overflow : Format String : dat
aflow ]
time.y(872) : ->sprintf(4)
time.y(872) : <=> (lptr)
time.y(872) : (lptr)
time.y(833) : <=> (lptr)
perm.c(115) : <->isintime(0->{lptr})
perm.c(77) : <=> (b)
perm.c(62) : <- fgets(0)
[5EC526FEA5E3788A1B2E0C91B231927E : high : Buffer Overflow : Format String : dat
aflow ]
time.y(872) : ->sprintf(3)
time.y(671) : ->y1error(0)
time.y(670) : <->sprintf(2->0)
time.y(385) : ->badyear(0)
y.tab.c(1112) : <=> (y1stack.l_mark)
y.tab.c(1112) : (y1lval)
time.y(492) : <=> (y1lval.ival)
time.y(491) : <=> (i)
time.y(833) : <=> (lptr)
perm.c(115) : <->isintime(0->{lptr})
perm.c(77) : <=> (b)
perm.c(62) : <- fgets(0)
[D3CA87080E299177ACC57993B6135A58 : high : Buffer Overflow : Format String : dat
aflow ]
time.y(872) : ->sprintf(4)
time.y(872) : <=> (lptr)
time.y(872) : (lptr)
time.y(833) : <=> (lptr)
syntax.c(213) : <->isintime(0->{lptr})
syntax.c(212) : <=> (f)
syntax.c(159) : taint change {+NULL_TERMINATED-NOT_NULL_TERMINATED,-NOT_NULL
_TERM_TRUNCATE}

syntax.c(159) : <=> (b)


syntax.c(105) : <=> (b)
syntax.c(95) : <- fgets(0)
[B76F080519F295D643FD9ACC1073903B : high : Buffer Overflow : Format String : dat
aflow ]
time.y(872) : ->sprintf(3)
time.y(671) : ->y1error(0)
time.y(670) : <->sprintf(2->0)
time.y(385) : ->badyear(0)
y.tab.c(1112) : <=> (y1stack.l_mark)
y.tab.c(1112) : (y1lval)
time.y(492) : <=> (y1lval.ival)
time.y(491) : <=> (i)
time.y(833) : <=> (lptr)
syntax.c(213) : <->isintime(0->{lptr})
syntax.c(212) : <=> (f)
syntax.c(159) : taint change {+NULL_TERMINATED-NOT_NULL_TERMINATED,-NOT_NULL
_TERM_TRUNCATE}
syntax.c(159) : <=> (b)
syntax.c(105) : <=> (b)
syntax.c(95) : <- fgets(0)
[15C845415350168A2EB1F4DBCE016B3A : high : Command Injection : dataflow ]
lsu.c(166) : ->execve(1)
lsu.c(61) : ->main(1)
[DCCF7E979F5A1B2E5137FAE9C5792E70 : high : Command Injection : dataflow ]
lsu.c(166) : ->execve(2)
lsu.c(62) : ->main(2)
[1FBDD1AA5183220DE4B02F23C6E1DC1F : high : Command Injection : dataflow ]
lsu.c(166) : ->execve(0)
lsu.c(166) : (shell)
lsu.c(246) : <=> (shell)
util.c(169) : return (p)
util.c(168) : <->strcpy(1->0)
lsu.c(246) : <->strsave(0->return)
perm.c(194) : <=> (newpw.pw_shell)
util.c(169) : return (p)
util.c(168) : <->strcpy(1->0)
perm.c(194) : <->strsave(0->return)
perm.c(184) : <=> (pw)
perm.c(184) : <- getpwnam(return)
[ADE01E7CEF8599C1929156D862BFD432 : medium : Path Manipulation : dataflow ]
syntax.c(61) : ->fopen(0)
lsu.c(80) : ->permsyntax(0[])
lsu.c(80) : <=> (argv)
lsu.c(61) : ->main(1)
[DDCF0902092830894CC0FAA89F5674D1 : medium : Weak Cryptographic Hash : User-Cont
rolled Salt : dataflow ]
util.c(133) : ->crypt(1)
perm.c(202) : ->vfypwd(0)
perm.c(202) : (newpw.pw_passwd)
perm.c(190) : <=> (newpw.pw_passwd)
util.c(169) : return (p)
util.c(168) : <->strcpy(1->0)
perm.c(190) : <->strsave(0->return)

perm.c(184) : <=> (pw)


perm.c(184) : <- getpwnam(return)
[605A59E26B42C75D0B002EB47EF67480 : medium : Weak Cryptographic Hash : User-Cont
rolled Salt : dataflow ]
util.c(133) : ->crypt(1)
perm.c(200) : ->vfypwd(0)
perm.c(200) : (curpw.pw_passwd)
lsu.c(225) : <=> (curpw.pw_passwd)
util.c(169) : return (p)
util.c(168) : <->strcpy(1->0)
lsu.c(225) : <->strsave(0->return)
lsu.c(220) : <=> (pw)
lsu.c(220) : <- getpwuid(return)
[DA5C28233F256B437F5465024A25F207 : high : Format String : dataflow ]
util.c(61) : ->err(1)
util.c(60) : <->sprintf(2->0)
lsu.c(73) : ->setname(0)
lsu.c(61) : ->main(1)
[E824BFA1203129C7FAE437B2D7DA25E6 : high : Format String : dataflow ]
syntax.c(62) : ->err(1)
lsu.c(80) : ->permsyntax(0[])
lsu.c(80) : <=> (argv)
lsu.c(61) : ->main(1)
[1AD0B985F542940E4D6981FD37222CA9 : high : Format String : dataflow ]
perm.c(137) : ->err(1)
perm.c(136) : <->sprintf(2->0)
lsu.c(111) : ->perms(0)
lsu.c(101) : <->strcpy(1->0)
lsu.c(92) : <=> (towho)
util.c(169) : return (p)
util.c(168) : <->strcpy(1->0)
lsu.c(92) : <->strsave(0->return)
lsu.c(61) : ->main(1)
[A3DBC515C28E7E200190E27A8055749C : high : Format String : dataflow ]
lsu.c(137) : ->err(1)
lsu.c(101) : <->strcpy(1->0)
lsu.c(92) : <=> (towho)
util.c(169) : return (p)
util.c(168) : <->strcpy(1->0)
lsu.c(92) : <->strsave(0->return)
lsu.c(61) : ->main(1)
[A3DBC515C28E7E200190E27A8055749D : high : Format String : dataflow ]
lsu.c(139) : ->err(1)
lsu.c(101) : <->strcpy(1->0)
lsu.c(92) : <=> (towho)
util.c(169) : return (p)
util.c(168) : <->strcpy(1->0)
lsu.c(92) : <->strsave(0->return)
lsu.c(61) : ->main(1)
[2EAFF0ED7061541033C8FB07B43A6A65 : high : Format String : dataflow ]
syntax.c(127) : ->err(1)
syntax.c(126) : <->sprintf(3->0)
syntax.c(116) : <=> (f)

syntax.c(105) : <=> (b)


syntax.c(95) : <- fgets(0)
[6B4797F2A118F63D3BEDDDF84BA3F342 : high : Format String : dataflow ]
perm.c(186) : ->err(1)
perm.c(185) : <->sprintf(2->0)
lsu.c(117) : ->getnewuser(0)
lsu.c(101) : <->strcpy(1->0)
lsu.c(92) : <=> (towho)
util.c(169) : return (p)
util.c(168) : <->strcpy(1->0)
lsu.c(92) : <->strsave(0->return)
lsu.c(61) : ->main(1)
[2EAFF0ED7061541033C8FB07B43A6A66 : high : Format String : dataflow ]
syntax.c(167) : ->err(1)
syntax.c(165) : <->sprintf(3->0)
syntax.c(159) : taint change {+NULL_TERMINATED-NOT_NULL_TERMINATED,-NOT_NULL
_TERM_TRUNCATE}
syntax.c(150) : <=> (f)
syntax.c(105) : <=> (b)
syntax.c(95) : <- fgets(0)
[6F9A982EB1507633AD379AC240F98F67 : high : Format String : dataflow ]
lsu.c(137) : ->err(1)
lsu.c(111) : <- perms(0)
perm.c(51) : <->strcpy(1->0)
lsu.c(224) : <=> (curpw.pw_name)
util.c(169) : return (p)
util.c(168) : <->strcpy(1->0)
lsu.c(224) : <->strsave(0->return)
lsu.c(220) : <=> (pw)
lsu.c(220) : <- getpwuid(return)
[6F9A982EB1507633AD379AC240F98F68 : high : Format String : dataflow ]
lsu.c(139) : ->err(1)
lsu.c(111) : <- perms(0)
perm.c(51) : <->strcpy(1->0)
lsu.c(224) : <=> (curpw.pw_name)
util.c(169) : return (p)
util.c(168) : <->strcpy(1->0)
lsu.c(224) : <->strsave(0->return)
lsu.c(220) : <=> (pw)
lsu.c(220) : <- getpwuid(return)
[69D9AC8B93A980C1C31EB2E26F43E020 : high : Format String : dataflow ]
perm.c(186) : ->err(1)
perm.c(185) : <->sprintf(2->0)
lsu.c(117) : ->getnewuser(0)
lsu.c(111) : <- perms(0)
perm.c(51) : <->strcpy(1->0)
lsu.c(224) : <=> (curpw.pw_name)
util.c(169) : return (p)
util.c(168) : <->strcpy(1->0)
lsu.c(224) : <->strsave(0->return)
lsu.c(220) : <=> (pw)
lsu.c(220) : <- getpwuid(return)
[8FBD262C14FC323F1A33EB92D8373FE5 : high : Format String : dataflow ]
perm.c(258) : ->err(1)

perm.c(250) : <->sprintf(2->0)
perm.c(244) : <=> (tpw)
perm.c(244) : <- getpwuid(return)
[93B3D69794440E88030F0E25774E56D7 : high : Format String : dataflow ]
tty.y(698) : ->err(1)
tty.y(697) : <->sprintf(4->0)
tty.y(697) : <=> (lptr)
tty.y(697) : (lptr)
tty.y(658) : <=> (lptr)
perm.c(103) : <->isintty(0->{lptr})
perm.c(77) : <=> (b)
perm.c(62) : <- fgets(0)
[AFA88F360DDFB2E622D333898C9498CE : high : Format String : dataflow ]
tty.y(698) : ->err(1)
tty.y(697) : <->sprintf(4->0)
tty.y(697) : <=> (lptr)
tty.y(697) : (lptr)
tty.y(658) : <=> (lptr)
syntax.c(194) : <->isintty(0->{lptr})
syntax.c(193) : <=> (f)
syntax.c(159) : taint change {+NULL_TERMINATED-NOT_NULL_TERMINATED,-NOT_NULL
_TERM_TRUNCATE}
syntax.c(159) : <=> (b)
syntax.c(105) : <=> (b)
syntax.c(95) : <- fgets(0)
[A17B72A2C8744FCFD8DDDF9F3D9B16CD : high : Format String : dataflow ]
time.y(873) : ->err(1)
time.y(872) : <->sprintf(4->0)
time.y(872) : <=> (lptr)
time.y(872) : (lptr)
time.y(833) : <=> (lptr)
perm.c(115) : <->isintime(0->{lptr})
perm.c(77) : <=> (b)
perm.c(62) : <- fgets(0)
[A29ABC1E26F37944947164D127EF5636 : high : Format String : dataflow ]
time.y(873) : ->err(1)
time.y(872) : <->sprintf(4->0)
time.y(872) : <=> (lptr)
time.y(872) : (lptr)
time.y(833) : <=> (lptr)
syntax.c(213) : <->isintime(0->{lptr})
syntax.c(212) : <=> (f)
syntax.c(159) : taint change {+NULL_TERMINATED-NOT_NULL_TERMINATED,-NOT_NULL
_TERM_TRUNCATE}
syntax.c(159) : <=> (b)
syntax.c(105) : <=> (b)
syntax.c(95) : <- fgets(0)
[A74104DA59CB2F399724D04ABB303230 : low : Often Misused : Privilege Management :
dataflow ]
lsu.c(136) : ->setgid(0)
lsu.c(136) : (newpw.pw_gid)
perm.c(192) : <=> (newpw.pw_gid)
perm.c(184) : <=> (pw)
perm.c(184) : <- getpwnam(return)

[12DDF45CCB1A271C8D91F4CDB8B33A13 : low : Often Misused : Privilege Management :


dataflow ]
lsu.c(138) : ->setuid(0)
lsu.c(138) : (newpw.pw_uid)
perm.c(191) : <=> (newpw.pw_uid)
perm.c(184) : <=> (pw)
perm.c(184) : <- getpwnam(return)
[B8BC2C1CB2749B6242F9422F904BA855 : low : Integer Overflow : dataflow ]
util.c(161) : ->malloc(0)
util.c(161) : <->strlen(0->return)
lsu.c(92) : ->strsave(0)
lsu.c(61) : ->main(1)
[27AC91DE2A942DCEEB3BCB0DE5312745 : low : Integer Overflow : dataflow ]
util.c(161) : ->malloc(0)
util.c(161) : <->strlen(0->return)
perm.c(189) : ->strsave(0)
perm.c(184) : <=> (pw)
perm.c(184) : <- getpwnam(return)
[39B61D023133D8F2AD3AE5CD8DEB68E6 : low : Integer Overflow : dataflow ]
util.c(161) : ->malloc(0)
util.c(161) : <->strlen(0->return)
lsu.c(224) : ->strsave(0)
lsu.c(220) : <=> (pw)
lsu.c(220) : <- getpwuid(return)
[ECF1221FD23602F63D79E64B14023B62 : high : Buffer Overflow : dataflow ]
perm.c(51) : ->strcpy(1)
perm.c(51) : (curpw.pw_name)
lsu.c(224) : <=> (curpw.pw_name)
util.c(169) : return (p)
util.c(168) : <->strcpy(1->0)
lsu.c(224) : <->strsave(0->return)
lsu.c(220) : <=> (pw)
lsu.c(220) : <- getpwuid(return)
[E4DF8DB1199E24E7E0A6D55FE7F78FBD : high : Buffer Overflow : dataflow ]
log.c(95) : ->strcat(1)
log.c(95) : (newpw.pw_name)
perm.c(189) : <=> (newpw.pw_name)
util.c(169) : return (p)
util.c(168) : <->strcpy(1->0)
perm.c(189) : <->strsave(0->return)
perm.c(184) : <=> (pw)
perm.c(184) : <- getpwnam(return)
[097A118E11D8EACF72E93D562F4E57CF : high : Buffer Overflow : dataflow ]
log.c(93) : ->strcat(0)
log.c(91) : <->sprintf(2->0)
lsu.c(224) : <=> (curpw.pw_name)
util.c(169) : return (p)
util.c(168) : <->strcpy(1->0)
lsu.c(224) : <->strsave(0->return)
lsu.c(220) : <=> (pw)
lsu.c(220) : <- getpwuid(return)
[17041528E9EB5A26528CA3725D6E2359 : high : Buffer Overflow : dataflow ]
log.c(95) : ->strcat(0)

log.c(91) : <->sprintf(2->0)
lsu.c(224) : <=> (curpw.pw_name)
util.c(169) : return (p)
util.c(168) : <->strcpy(1->0)
lsu.c(224) : <->strsave(0->return)
lsu.c(220) : <=> (pw)
lsu.c(220) : <- getpwuid(return)
[EE94B871D434886C41DF924E6E3F3A1C : medium : System Information Leak : Internal
: dataflow ]
log.c(101) : ->fprintf(2)
util.c(206) : ->logmessage(1)
util.c(190) : <->sprintf(2->0)
lsu.c(222) : ->err(1)
lsu.c(221) : <->sprintf(2->0)
lsu.c(218) : <=> (curpw.pw_uid)
lsu.c(218) : <- getuid(return)
[E35AB662CDA8D0B8D4A0C62F09A9A556 : medium : System Information Leak : Internal
: dataflow ]
util.c(199) : ->fprintf(3)
util.c(190) : <->sprintf(2->0)
lsu.c(222) : ->err(1)
lsu.c(221) : <->sprintf(2->0)
lsu.c(218) : <=> (curpw.pw_uid)
lsu.c(218) : <- getuid(return)
[BDA475DC463CF3193DA9048713AAD0C6 : high : Command Injection : dataflow ]
util.c(249) : ->system(0)
util.c(248) : <->sprintf(7->0)
util.c(212) : ->mailperm(0)
util.c(190) : <->sprintf(2->0)
util.c(61) : ->err(1)
util.c(60) : <->sprintf(2->0)
lsu.c(73) : ->setname(0)
lsu.c(61) : ->main(1)
[CBAC9A049750808BEA2F40495F575B79 : high : Command Injection : dataflow ]
util.c(249) : ->system(0)
util.c(248) : <->sprintf(7->0)
util.c(212) : ->mailperm(0)
util.c(190) : <->sprintf(2->0)
tty.y(698) : ->err(1)
tty.y(697) : <->sprintf(4->0)
tty.y(697) : <=> (lptr)
tty.y(697) : (lptr)
tty.y(658) : <=> (lptr)
perm.c(103) : <->isintty(0->{lptr})
perm.c(77) : <=> (b)
perm.c(62) : <- fgets(0)
[DDC31F179310683E4EA5EEE1CF713AFA : high : Command Injection : dataflow ]
util.c(276) : ->system(0)
util.c(275) : <->sprintf(7->0)
util.c(214) : ->maillog(0)
util.c(190) : <->sprintf(2->0)
util.c(61) : ->err(1)
util.c(60) : <->sprintf(2->0)
lsu.c(73) : ->setname(0)
lsu.c(61) : ->main(1)

[3A52A5D5BA5A9274B33E914B249A127A : high : Command Injection : dataflow ]


util.c(276) : ->system(0)
util.c(275) : <->sprintf(7->0)
util.c(214) : ->maillog(0)
util.c(190) : <->sprintf(2->0)
tty.y(698) : ->err(1)
tty.y(697) : <->sprintf(4->0)
tty.y(697) : <=> (lptr)
tty.y(697) : (lptr)
tty.y(658) : <=> (lptr)
perm.c(103) : <->isintty(0->{lptr})
perm.c(77) : <=> (b)
perm.c(62) : <- fgets(0)
[C258CB6ED0205482D72BBBCE6F7E72A6 : high : Command Injection : dataflow ]
util.c(249) : ->system(0)
util.c(248) : <->sprintf(7->0)
util.c(212) : ->mailperm(0)
util.c(190) : <->sprintf(2->0)
syntax.c(127) : ->err(1)
syntax.c(126) : <->sprintf(3->0)
syntax.c(116) : <=> (f)
syntax.c(105) : <=> (b)
syntax.c(95) : <- fgets(0)
[8AE4231F9D3414834070FD1E5F02E1C1 : high : Command Injection : dataflow ]
util.c(276) : ->system(0)
util.c(275) : <->sprintf(7->0)
util.c(214) : ->maillog(0)
util.c(190) : <->sprintf(2->0)
syntax.c(127) : ->err(1)
syntax.c(126) : <->sprintf(3->0)
syntax.c(116) : <=> (f)
syntax.c(105) : <=> (b)
syntax.c(95) : <- fgets(0)
[1DCC0D3BBD5516345469333D8EE37824 : high : Command Injection : dataflow ]
util.c(249) : ->system(0)
util.c(248) : <->sprintf(5->0)
lsu.c(224) : <=> (curpw.pw_name)
util.c(169) : return (p)
util.c(168) : <->strcpy(1->0)
lsu.c(224) : <->strsave(0->return)
lsu.c(220) : <=> (pw)
lsu.c(220) : <- getpwuid(return)
[4EC67A53B700A4362B16CC6DF9D15382 : high : Command Injection : dataflow ]
util.c(249) : ->system(0)
util.c(248) : <->sprintf(7->0)
util.c(212) : ->mailperm(0)
util.c(190) : <->sprintf(2->0)
perm.c(258) : ->err(1)
perm.c(250) : <->sprintf(2->0)
perm.c(244) : <=> (tpw)
perm.c(244) : <- getpwuid(return)
[4D3F0DD68F362C7E58E63BBF6998D2A4 : high : Command Injection : dataflow ]
util.c(276) : ->system(0)
util.c(275) : <->sprintf(5->0)

lsu.c(224) : <=> (curpw.pw_name)


util.c(169) : return (p)
util.c(168) : <->strcpy(1->0)
lsu.c(224) : <->strsave(0->return)
lsu.c(220) : <=> (pw)
lsu.c(220) : <- getpwuid(return)
[5726BDD342E961EE0B2111621B1E2FF4 : high : Command Injection : dataflow ]
util.c(276) : ->system(0)
util.c(275) : <->sprintf(7->0)
util.c(214) : ->maillog(0)
util.c(190) : <->sprintf(2->0)
perm.c(258) : ->err(1)
perm.c(250) : <->sprintf(2->0)
perm.c(244) : <=> (tpw)
perm.c(244) : <- getpwuid(return)
[B2C366DFAA8B4967A3DF37579F81D998 : high : Command Injection : dataflow ]
util.c(249) : ->system(0)
util.c(248) : <->sprintf(7->0)
util.c(212) : ->mailperm(0)
util.c(190) : <->sprintf(2->0)
time.y(873) : ->err(1)
time.y(872) : <->sprintf(3->0)
time.y(671) : ->y1error(0)
time.y(670) : <->sprintf(2->0)
time.y(385) : ->badyear(0)
y.tab.c(1112) : <=> (y1stack.l_mark)
y.tab.c(1112) : (y1lval)
time.y(492) : <=> (y1lval.ival)
time.y(491) : <=> (i)
time.y(833) : <=> (lptr)
perm.c(115) : <->isintime(0->{lptr})
perm.c(77) : <=> (b)
perm.c(62) : <- fgets(0)
[1E1C03371AF4FFF4FCF2157D3BF8A22A : high : Command Injection : dataflow ]
util.c(276) : ->system(0)
util.c(275) : <->sprintf(7->0)
util.c(214) : ->maillog(0)
util.c(190) : <->sprintf(2->0)
time.y(873) : ->err(1)
time.y(872) : <->sprintf(3->0)
time.y(671) : ->y1error(0)
time.y(670) : <->sprintf(2->0)
time.y(385) : ->badyear(0)
y.tab.c(1112) : <=> (y1stack.l_mark)
y.tab.c(1112) : (y1lval)
time.y(492) : <=> (y1lval.ival)
time.y(491) : <=> (i)
time.y(833) : <=> (lptr)
perm.c(115) : <->isintime(0->{lptr})
perm.c(77) : <=> (b)
perm.c(62) : <- fgets(0)
[DEC50F8BA29D0895D99013E2E796F67C : high : Command Injection : dataflow ]
util.c(249) : ->system(0)
util.c(248) : <->sprintf(7->0)
util.c(212) : ->mailperm(0)
util.c(190) : <->sprintf(2->0)

time.y(873) : ->err(1)
time.y(872) : <->sprintf(3->0)
time.y(671) : ->y1error(0)
time.y(670) : <->sprintf(2->0)
time.y(385) : ->badyear(0)
y.tab.c(1112) : <=> (y1stack.l_mark)
y.tab.c(1112) : (y1lval)
time.y(492) : <=> (y1lval.ival)
time.y(491) : <=> (i)
time.y(833) : <=> (lptr)
syntax.c(213) : <->isintime(0->{lptr})
syntax.c(212) : <=> (f)
syntax.c(159) : taint change {+NULL_TERMINATED-NOT_NULL_TERMINATED,-NOT_NULL
_TERM_TRUNCATE}
syntax.c(159) : <=> (b)
syntax.c(105) : <=> (b)
syntax.c(95) : <- fgets(0)
[BCDEFEFD891C0853958D6500DE0F2E90 : high : Command Injection : dataflow ]
util.c(276) : ->system(0)
util.c(275) : <->sprintf(7->0)
util.c(214) : ->maillog(0)
util.c(190) : <->sprintf(2->0)
time.y(873) : ->err(1)
time.y(872) : <->sprintf(3->0)
time.y(671) : ->y1error(0)
time.y(670) : <->sprintf(2->0)
time.y(385) : ->badyear(0)
y.tab.c(1112) : <=> (y1stack.l_mark)
y.tab.c(1112) : (y1lval)
time.y(492) : <=> (y1lval.ival)
time.y(491) : <=> (i)
time.y(833) : <=> (lptr)
syntax.c(213) : <->isintime(0->{lptr})
syntax.c(212) : <=> (f)
syntax.c(159) : taint change {+NULL_TERMINATED-NOT_NULL_TERMINATED,-NOT_NULL
_TERM_TRUNCATE}
syntax.c(159) : <=> (b)
syntax.c(105) : <=> (b)
syntax.c(95) : <- fgets(0)
[08871FF8C4DA4232D96019114DFA6B8C : high : Buffer Overflow : Format String : buf
fer ]
lsu.c(258) : sprintf()
Buffer Definition, tmpbuf lsu.c(240)
[format 0] %s: (unbounded)
Buffer Size: 8192 bytes
Write Length: (unbounded) bytes
[var 0] progname.$strlen: (unbounded)
Format String: "/%s"
[7BFC6B05DC3A225D33AAD75FE8C60780 : high : Buffer Overflow : Format String : buf
fer ]
perm.c(185) : sprintf()
Buffer Definition, buf perm.c(182)
[format 0] %s: (unbounded)
Buffer Size: 8192 bytes
Write Length: (unbounded) bytes
[var 0] who.$strlen: (unbounded)
Param "who", Size: 8192

[/home/raschaef/Documents/153/P2/lsu/lsu.c:117:2]
Format String: "%s not listed in password file\n"
[C2DE80D371A11EC2DDD3032E29F7CADF : high : Buffer Overflow : Format String : buf
fer ]
time.y(871) : sprintf()
Buffer Definition, buf time.y(859)
[format 0] %2d: 7
[format 1] %s: (unbounded)
[format 2] %s: (unbounded)
Buffer Size: 8192 bytes
Write Length: (unbounded) bytes
[var 0] linect: (unbounded)
[var 1] s.$strlen: (unbounded)
[var 2] lptr.$strlen: (unbounded)
Param "s", Size: 8192
[/home/raschaef/Documents/153/P2/lsu/time.y:643:3]
Format String: "(%2d): %s -- bad time (at \"%s\")\n"
[3C2FCE0C1681B2CA629DCCF0D6C3195A : high : Buffer Overflow : Format String : buf
fer ]
util.c(186) : sprintf()
Buffer Definition, message util.c(179)
[format 0] %s: (unbounded)
[format 1] %s: (unbounded)
Buffer Size: 8192 bytes
Write Length: (unbounded) bytes
[var 0] what.$strlen: (unbounded)
[var 1] sys_errlist[*__errno_location()].$strlen: (unbounded)
Param "what", Size: 8192
[/home/raschaef/Documents/153/P2/lsu/lsu.c:137:3]
Format String: "%s: %s\n"
[BD8533779DF9612D50B8197A0AC9C13E : high : Buffer Overflow : Format String : buf
fer ]
util.c(189) : sprintf()
Buffer Definition, message util.c(179)
[format 0] %s: (unbounded)
[format 1] %d: 5
Buffer Size: 8192 bytes
Write Length: (unbounded) bytes
[var 0] what.$strlen: (unbounded)
Param "what", Size: 8192
[/home/raschaef/Documents/153/P2/lsu/lsu.c:137:3]
Format String: "%s: unknown error #%d\n"
[500D94982350676E3CA8B5862E665C59 : low : Dead Code : structural ]
/home/raschaef/Documents/153/P2/lsu/perm.c:106:4
Dead Code
[500D94982350676E3CA8B5862E665C5A : low : Dead Code : structural ]
/home/raschaef/Documents/153/P2/lsu/perm.c:118:4
Dead Code
[8B03517889BF087FD609530E2036A90D : low : Dead Code : structural ]
/home/raschaef/Documents/153/P2/lsu/perm.c:187
Dead Code
[14E634BE558B5CAD6E99122B1BB02EA8 : low : Dead Code : structural ]
/home/raschaef/Documents/153/P2/lsu/syntax.c:63

Dead Code
[EE74EAE0DDA5D75E479E6F062977F4F3 : low : Dead Code : structural ]
/home/raschaef/Documents/153/P2/lsu/syntax.c:109
Dead Code
[EE74EAE0DDA5D75E479E6F062977F4F4 : low : Dead Code : structural ]
/home/raschaef/Documents/153/P2/lsu/syntax.c:128
Dead Code
[EE74EAE0DDA5D75E479E6F062977F4F5 : low : Dead Code : structural ]
/home/raschaef/Documents/153/P2/lsu/syntax.c:143
Dead Code
[EE74EAE0DDA5D75E479E6F062977F4F6 : low : Dead Code : structural ]
/home/raschaef/Documents/153/P2/lsu/syntax.c:187
Dead Code
[833AF3927FF4F3B97D40D4EC89D35066 : medium : Missing Check against Null : contro
lflow ]
lsu.c(197) : start -> allocated : tick = localtime(...) : localtime may retu
rn NULL
lsu.c(197) : allocated -> allocated : tick may be NULL
lsu.c(199) : allocated -> used : tick : tick used without null check
[ABB8CD6382B6A44EFC51FE0DA8839991 : medium : Missing Check against Null : contro
lflow ]
time.y(805) : start -> allocated : localtime(...) : localtime may return NUL
L
time.y(805) : allocated -> used : localtime((&clocktm)) : return value used
without null check
[644AD2C8AEA703CA7B1A05BECE11F13E : medium : Unreleased Resource : controlflow ]
syntax.c(38)
syntax.c(47)
syntax.c(52)
syntax.c(61)
syntax.c(61)
syntax.c(61)
syntax.c(52)
syntax.c(61)

:
:
:
:
:
:
:
:

Branch not taken: (curpw.pw_uid == 0)


Branch not taken: (*argv != NULL)
Branch taken: ((*argv)[i] != NULL)
start -> loaded : fp = fopen(...)
loaded -> loaded : fp refers to an open file descriptor
Branch not taken: (fp != NULL)
Branch taken: ((*argv)[i] != NULL)
loaded -> loaded : fp no longer refers to an open file descri

ptor
syntax.c(61) : loaded -> end_of_scope : fp end scope : File descriptor leake
d
syntax.c(38)
syntax.c(47)
syntax.c(52)
syntax.c(61)
syntax.c(61)
syntax.c(61)
syntax.c(52)
syntax.c(77)
syntax.c(77)

:
:
:
:
:
:
:
:
:

Branch not taken: (curpw.pw_uid == 0)


Branch not taken: (*argv != NULL)
Branch taken: ((*argv)[i] != NULL)
start -> loaded : fp = fopen(...)
loaded -> loaded : fp refers to an open file descriptor
Branch not taken: (fp != NULL)
Branch not taken: ((*argv)[i] == NULL)
loaded -> loaded : return
loaded -> loaded : fp no longer refers to an open file descri

ptor
syntax.c(77) : loaded -> end_of_scope : fp end scope : File descriptor leake
d

[9B020E20183444C95B383C5D92641E28 : medium : Race Condition : File System Access


: controlflow ]
perm.c(227)
perm.c(227)
perm.c(227)
perm.c(233)
perm.c(239)
file property
perm.c(239)
perm.c(265)
perm.c(291)
to operate on a

:
:
:
:
:

start -> s : stat(perm, &(stbuf))


s -> s : stbuf refers to the stat structure for perm
Branch not taken: (stat(perm, (&stbuf)) >= 0)
Branch not taken: (*bc == 0)
s -> check : stbuf : Symbolic filename perm used to check some

: Branch not taken: (stbuf.st_uid == 0)


: Branch not taken: ((stbuf.st_mode & 511) == 384)
: check -> use : fopen(perm, ...) : Symbolic filename perm used
file

[8F7DAA7A5043C55D91585294BED5EAC8 : medium : Memory Leak : controlflow ]


lsu.c(256) : start -> allocated : argv0 = strsave(...)
util.c(161) : start -> allocated : p = malloc(...)
util.c(161) : allocated -> allocated : p refers to dynamically allocated
memory
util.c(161) : Branch not taken: (p != NULL)
util.c(169) : allocated -> allocated : return
lsu.c(287) : allocated -> allocated : argv0 no longer refers to dynamically
allocated memory
lsu.c(287) : allocated -> leak : argv0 end scope : Memory leaked
[03B594D3C4C6D1DD596CC735CC1FDD01 : medium : Missing Check against Null : contro
lflow ]
util.c(127)
util.c(127)
util.c(127)
util.c(131)

:
:
:
:

Branch taken: (curpw.pw_uid != 0)


Branch taken: (encpw != NULL)
Branch taken: (*encpw != 0)
start -> allocated : p = getpass(...) : getpass may return NUL

util.c(131)
util.c(132)
util.c(139)
util.c(140)

:
:
:
:

allocated -> allocated : p may be NULL


Branch not taken: (success == 16)
Branch taken: (i < 8)
allocated -> used : p : p used without null check

[7F74F1659CB9A69CCA65B548E1971ABE : low : Password Management : Password in Comm


ent : structural ]
lsu.c(66)
[5211FF11851C8415D91324DF0CBEE0E3 : low : Password Management : Password in Comm
ent : structural ]
lsu.c(113)
[DED32C0A45D6128B41601D935CB93D3B : low : Password Management : Password in Comm
ent : structural ]
lsu.c(185)
[916D2E028F7E9FE9256709334716A22B : low : Password Management : Password in Comm
ent : structural ]
lsu.c(213)
[87DC8A04BF22605E1CE32CFB4DB3F760 : low : Password Management : Password in Comm
ent : structural ]
lsu.h(92)

[61B2F2DE4F8774683C8266CE4D57D872 : low : Password Management : Password in Comm


ent : structural ]
lsu.h(158)
[607ABA1879196A185FDBC59B17BB3F7D : low : Password Management : Password in Comm
ent : structural ]
lsu.h(160)
[0A054102374100890107C51EA854C3E7 : low : Password Management : Password in Comm
ent : structural ]
lsu.h(161)
[C052AC9864082A07D2B797FE2A5C730A : low : Password Management : Password in Comm
ent : structural ]
lsu.h(162)
[310FC37BE5A41431730F59F2A2C0B710 : low : Password Management : Password in Comm
ent : structural ]
perm.c(240)
[5FFD44408E52A3FD92870DFE1180665C : low : Password Management : Password in Comm
ent : structural ]
util.c(115)
[82020C413AE75FFE25D61AF72E44A1DB : low : Password Management : Password in Comm
ent : structural ]
util.c(119)
[7D095337AE4B31FE190EBB09F54CA15F : low : Password Management : Password in Comm
ent : structural ]
util.c(121)
[505D7918B3D55D9D302533FF6753448E : low : Password Management : Password in Comm
ent : structural ]
util.c(122)
[C51406AD6901C8A517CAFC86709157FB : low : Password Management : Password in Comm
ent : structural ]
util.c(124)
[69B69650E15823A0628EF57499B148BC : low : Password Management : Password in Comm
ent : structural ]
util.c(128)
[4557C3D06079A8071458E3B2D7498550 : low : Password Management : Password in Comm
ent : structural ]
util.c(136)
[CD094CDFEB7B53EE835F93FC0F116522 : low : Poor Style : Value Never Read : struct
ural ]
y.tab.c(1012)
Variable: y2state [y.tab.c(997)]
[9A1BC0501E8DD77E14F3EDBAC9D0755A : low : Poor Style : Value Never Read : struct
ural ]
y.tab.c(1070)
Variable: y1state [y.tab.c(1055)]