* gnu/packages/patches/ytnef-CVE-2021-3403.patch, gnu/packages/patches/ytnef-CVE-2021-3404.patch: New patches. * gnu/local.mk (dist_patch_DATA): Register them. * gnu/packages/mail.scm (ytnef): Apply them.
		
			
				
	
	
		
			30 lines
		
	
	
	
		
			906 B
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			30 lines
		
	
	
	
		
			906 B
		
	
	
	
		
			Diff
		
	
	
	
	
	
| From f9ff4a203b8c155d51a208cadadb62f224fba715 Mon Sep 17 00:00:00 2001
 | |
| From: Oliver Giles <ohw.giles@gmail.com>
 | |
| Date: Mon, 1 Feb 2021 10:18:17 +1300
 | |
| Subject: [PATCH] Ensure the size of the version field is 4 bytes
 | |
| 
 | |
| A corrupted version field size can cause TNEFVersion to access outside
 | |
| of allocated memory. Check the version is the expected size and raise
 | |
| an error if not.
 | |
| 
 | |
| Resolves: #86
 | |
| Reported-by: jasperla
 | |
| ---
 | |
|  lib/ytnef.c | 4 ++++
 | |
|  1 file changed, 4 insertions(+)
 | |
| 
 | |
| diff --git a/lib/ytnef.c b/lib/ytnef.c
 | |
| index b148719..ffede44 100644
 | |
| --- a/lib/ytnef.c
 | |
| +++ b/lib/ytnef.c
 | |
| @@ -335,6 +335,10 @@ int TNEFRendData STD_ARGLIST {
 | |
|  int TNEFVersion STD_ARGLIST {
 | |
|    WORD major;
 | |
|    WORD minor;
 | |
| +  if (size != 2 * sizeof(WORD)) {
 | |
| +    printf("Incorrect size of version field, suspected corruption\n");
 | |
| +    return -1;
 | |
| +  }
 | |
|    minor = SwapWord((BYTE*)data, size);
 | |
|    major = SwapWord((BYTE*)data + 2, size - 2);
 | |
|  
 |