mirror of
				https://codeberg.org/yeentown/barkey.git
				synced 2025-11-04 07:24:13 +00:00 
			
		
		
		
	merge: Fix type error(s) in security fixes (!764)
View MR for information: https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/764 Approved-by: Hazelnoot <acomputerdog@gmail.com>
This commit is contained in:
		
						commit
						757d9aa5ee
					
				
					 4 changed files with 18 additions and 16 deletions
				
			
		| 
						 | 
				
			
			@ -54,19 +54,19 @@ class HttpRequestServiceAgent extends http.Agent {
 | 
			
		|||
				}
 | 
			
		||||
			});
 | 
			
		||||
		return socket;
 | 
			
		||||
	};
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	@bindThis
 | 
			
		||||
	private isPrivateIp(ip: string): boolean {
 | 
			
		||||
		const parsedIp = ipaddr.parse(ip);
 | 
			
		||||
	
 | 
			
		||||
 | 
			
		||||
		for (const net of this.config.allowedPrivateNetworks ?? []) {
 | 
			
		||||
			const cidr = ipaddr.parseCIDR(net);
 | 
			
		||||
			if (cidr[0].kind() === parsedIp.kind() && parsedIp.match(ipaddr.parseCIDR(net))) {
 | 
			
		||||
				return false;
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	
 | 
			
		||||
 | 
			
		||||
		return parsedIp.range() !== 'unicast';
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -93,19 +93,19 @@ class HttpsRequestServiceAgent extends https.Agent {
 | 
			
		|||
				}
 | 
			
		||||
			});
 | 
			
		||||
		return socket;
 | 
			
		||||
	};
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	@bindThis
 | 
			
		||||
	private isPrivateIp(ip: string): boolean {
 | 
			
		||||
		const parsedIp = ipaddr.parse(ip);
 | 
			
		||||
	
 | 
			
		||||
 | 
			
		||||
		for (const net of this.config.allowedPrivateNetworks ?? []) {
 | 
			
		||||
			const cidr = ipaddr.parseCIDR(net);
 | 
			
		||||
			if (cidr[0].kind() === parsedIp.kind() && parsedIp.match(ipaddr.parseCIDR(net))) {
 | 
			
		||||
				return false;
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	
 | 
			
		||||
 | 
			
		||||
		return parsedIp.range() !== 'unicast';
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -163,13 +163,16 @@ export class ApPersonService implements OnModuleInit {
 | 
			
		|||
		}
 | 
			
		||||
 | 
			
		||||
		for (const collection of ['outbox', 'followers', 'following'] as (keyof IActor)[]) {
 | 
			
		||||
			const collectionUri = getApId((x as IActor)[collection]);
 | 
			
		||||
			if (typeof collectionUri === 'string' && collectionUri.length > 0) {
 | 
			
		||||
				if (this.utilityService.punyHost(collectionUri) !== expectHost) {
 | 
			
		||||
					throw new Error(`invalid Actor: ${collection} has different host`);
 | 
			
		||||
			const xCollection = (x as IActor)[collection];
 | 
			
		||||
			if (xCollection != null) {
 | 
			
		||||
				const collectionUri = getApId(xCollection);
 | 
			
		||||
				if (typeof collectionUri === 'string' && collectionUri.length > 0) {
 | 
			
		||||
					if (this.utilityService.punyHost(collectionUri) !== expectHost) {
 | 
			
		||||
						throw new Error(`invalid Actor: ${collection} has different host`);
 | 
			
		||||
					}
 | 
			
		||||
				} else if (collectionUri != null) {
 | 
			
		||||
					throw new Error(`invalid Actor: wrong ${collection}`);
 | 
			
		||||
				}
 | 
			
		||||
			} else if (collectionUri != null) {
 | 
			
		||||
				throw new Error(`invalid Actor: wrong ${collection}`);
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -192,8 +192,7 @@ export class InboxProcessorService implements OnApplicationShutdown {
 | 
			
		|||
			if (signerHost !== activityIdHost) {
 | 
			
		||||
				throw new Bull.UnrecoverableError(`skip: signerHost(${signerHost}) !== activity.id host(${activityIdHost}`);
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		else {
 | 
			
		||||
		} else {
 | 
			
		||||
			throw new Bull.UnrecoverableError('skip: activity id is not a string');
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -176,7 +176,7 @@ describe('ActivityPub', () => {
 | 
			
		|||
			resolver.register(actor.id, actor);
 | 
			
		||||
			resolver.register(post.id, post);
 | 
			
		||||
 | 
			
		||||
			const note = await noteService.createNote(post.id, resolver, true);
 | 
			
		||||
			const note = await noteService.createNote(post.id, undefined, resolver, true);
 | 
			
		||||
 | 
			
		||||
			assert.deepStrictEqual(note?.uri, post.id);
 | 
			
		||||
			assert.deepStrictEqual(note.visibility, 'public');
 | 
			
		||||
| 
						 | 
				
			
			@ -336,7 +336,7 @@ describe('ActivityPub', () => {
 | 
			
		|||
			resolver.register(actor.featured, featured);
 | 
			
		||||
			resolver.register(firstNote.id, firstNote);
 | 
			
		||||
 | 
			
		||||
			const note = await noteService.createNote(firstNote.id as string, resolver);
 | 
			
		||||
			const note = await noteService.createNote(firstNote.id as string, undefined, resolver);
 | 
			
		||||
			assert.strictEqual(note?.uri, firstNote.id);
 | 
			
		||||
		});
 | 
			
		||||
	});
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		
		Reference in a new issue