summaryrefslogtreecommitdiff
path: root/packages/backend/src/server/ServerService.ts
diff options
context:
space:
mode:
authorsyuilo <Syuilotan@yahoo.co.jp>2023-11-14 17:09:45 +0900
committerGitHub <noreply@github.com>2023-11-14 17:09:45 +0900
commit65c5626b65ee00d2663ec3604140a18427b65cdc (patch)
tree85ac0bdc22844fb0a21737fde4317de11afb85aa /packages/backend/src/server/ServerService.ts
parentupdate deps (diff)
downloadsharkey-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.ts8
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, {