mirror of
https://git.tartarus.org/simon/putty.git
synced 2025-06-01 09:20:28 -05:00
Fix vulnerability CVE-2016-2563 in old scp protocol.
There was a rogue sscanf("%s") with no field width limit, targeting a stack-based buffer, and scanning a string containing untrusted data. It occurs in the 'sink' side of the protocol, i.e. when downloading files *from* the server. Our own bug id for this vulnerability is 'vuln-pscp-sink-sscanf'.
This commit is contained in:
parent
51586b6f26
commit
bc6c15ab5f
2
pscp.c
2
pscp.c
@ -1528,7 +1528,7 @@ int scp_get_sink_action(struct scp_sink_action *act)
|
|||||||
{
|
{
|
||||||
char sizestr[40];
|
char sizestr[40];
|
||||||
|
|
||||||
if (sscanf(act->buf, "%lo %s %n", &act->permissions,
|
if (sscanf(act->buf, "%lo %39s %n", &act->permissions,
|
||||||
sizestr, &i) != 2)
|
sizestr, &i) != 2)
|
||||||
bump("Protocol error: Illegal file descriptor format");
|
bump("Protocol error: Illegal file descriptor format");
|
||||||
act->size = uint64_from_decimal(sizestr);
|
act->size = uint64_from_decimal(sizestr);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user