diff options
| author | syuilo <Syuilotan@yahoo.co.jp> | 2023-11-14 17:09:45 +0900 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-11-14 17:09:45 +0900 |
| commit | 65c5626b65ee00d2663ec3604140a18427b65cdc (patch) | |
| tree | 85ac0bdc22844fb0a21737fde4317de11afb85aa /packages/backend/src/server/ServerService.ts | |
| parent | update deps (diff) | |
| download | sharkey-65c5626b65ee00d2663ec3604140a18427b65cdc.tar.gz sharkey-65c5626b65ee00d2663ec3604140a18427b65cdc.tar.bz2 sharkey-65c5626b65ee00d2663ec3604140a18427b65cdc.zip | |
Merge pull request from GHSA-3f39-6537-3cgc
This commit implements HTTP header and body validation to fix
[SIF-2023-002](https://advisory.silicon.moe/advisory/sif-2023-002/)
Signed-off-by: perillamint <perillamint@silicon.moe>
Co-authored-by: perillamint <perillamint@silicon.moe>
Co-authored-by: yunochi <yuno@yunochi.com>
Diffstat (limited to 'packages/backend/src/server/ServerService.ts')
| -rw-r--r-- | packages/backend/src/server/ServerService.ts | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/packages/backend/src/server/ServerService.ts b/packages/backend/src/server/ServerService.ts index 757cf21615..6e1956cd1d 100644 --- a/packages/backend/src/server/ServerService.ts +++ b/packages/backend/src/server/ServerService.ts @@ -9,6 +9,7 @@ import { fileURLToPath } from 'node:url'; import { Inject, Injectable, OnApplicationShutdown } from '@nestjs/common'; import Fastify, { FastifyInstance } from 'fastify'; import fastifyStatic from '@fastify/static'; +import fastifyRawBody from 'fastify-raw-body'; import { IsNull } from 'typeorm'; import { GlobalEventService } from '@/core/GlobalEventService.js'; import type { Config } from '@/config.js'; @@ -86,6 +87,13 @@ export class ServerService implements OnApplicationShutdown { }); } + // Register raw-body parser for ActivityPub HTTP signature validation. + fastify.register(fastifyRawBody, { + global: false, + encoding: 'utf-8', + runFirst: true, + }); + // Register non-serving static server so that the child services can use reply.sendFile. // `root` here is just a placeholder and each call must use its own `rootPath`. fastify.register(fastifyStatic, { |