View Issue Details
| ID | Project | Category | View Status | Date Submitted | Last Update |
|---|---|---|---|---|---|
| 0000204 | Main CAcert Website | source code | public | 2006-04-13 08:06 | 2013-01-14 03:34 |
| Reporter | Assigned To | ||||
| Priority | high | Severity | major | Reproducibility | N/A |
| Status | closed | Resolution | duplicate | ||
| Fixed in Version | 2006 | ||||
| Summary | 0000204: Bad locking algorithm / DoS possible | ||||
| Description | In scripts/clientcert.php the following locking algorithm is used: do { $ps = trim(`ps auxww|grep clientcerts.php|grep -v grep|wc -l`); $ps += trim(`ps auxww|grep servercerts.php|grep -v grep|wc -l`); if($ps > 1) usleep(rand(90000, 100000)); } while($ps > 1) If it happens that more than one process ends up in this while loop at the same time, the $ps will always be >1 but none of the processes will be able to leave the loop. | ||||
| Additional Information | A possible solution would be that the script terminates if it cannot obtain the lock using a special exit code. The wrapping programm runscript.c should look at the exit code, sleep and restart the script. It might be possible to use this for a denial of service attack against the signing process. | ||||
| Tags | No tags attached. | ||||
| Reviewed by | |||||
| Test Instructions | |||||
| has duplicate | 0000275 | closed | Race condition |
| Date Modified | Username | Field | Change |
|---|---|---|---|
| 2006-04-13 08:06 |
|
New Issue | |
| 2006-07-31 10:45 |
|
Relationship added | has duplicate 0000275 |
| 2006-08-04 00:16 | duane | Status | new => closed |
| 2006-08-04 00:16 | duane | Note Added: 0000293 | |
| 2006-08-04 00:16 | duane | Resolution | open => duplicate |
| 2006-08-04 00:17 | duane | Fixed in Version | => production |
| 2013-01-14 03:34 | Werner Dworak | Fixed in Version | => 2006 |