Skip to content

Commit 0f8f55b

Browse files
committed
node: prevent exposing engine API on unauthenticated endpoint ethereum#25939
1 parent a74b873 commit 0f8f55b

File tree

2 files changed

+14
-14
lines changed

2 files changed

+14
-14
lines changed

node/api.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -278,7 +278,7 @@ func (api *privateAdminAPI) StartWS(host *string, port *int, allowedOrigins *str
278278
if err := server.setListenAddr(*host, *port); err != nil {
279279
return false, err
280280
}
281-
openApis, _ := api.node.GetAPIs()
281+
openApis, _ := api.node.getAPIs()
282282
if err := server.enableWS(openApis, config); err != nil {
283283
return false, err
284284
}

node/node.go

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -404,20 +404,20 @@ func (n *Node) startRPC() error {
404404
}
405405

406406
var (
407-
servers []*httpServer
408-
open, all = n.GetAPIs()
407+
servers []*httpServer
408+
openAPIs, allAPIs = n.getAPIs()
409409
)
410410

411411
rpcConfig := rpcEndpointConfig{
412412
batchItemLimit: n.config.BatchRequestLimit,
413413
batchResponseSizeLimit: n.config.BatchResponseMaxSize,
414414
}
415415

416-
initHttp := func(server *httpServer, apis []rpc.API, port int) error {
416+
initHttp := func(server *httpServer, port int) error {
417417
if err := server.setListenAddr(n.config.HTTPHost, port); err != nil {
418418
return err
419419
}
420-
if err := server.enableRPC(apis, httpConfig{
420+
if err := server.enableRPC(openAPIs, httpConfig{
421421
CorsAllowedOrigins: n.config.HTTPCors,
422422
Vhosts: n.config.HTTPVirtualHosts,
423423
Modules: n.config.HTTPModules,
@@ -435,7 +435,7 @@ func (n *Node) startRPC() error {
435435
if err := server.setListenAddr(n.config.WSHost, port); err != nil {
436436
return err
437437
}
438-
if err := server.enableWS(n.rpcAPIs, wsConfig{
438+
if err := server.enableWS(openAPIs, wsConfig{
439439
Modules: n.config.WSModules,
440440
Origins: n.config.WSOrigins,
441441
prefix: n.config.WSPathPrefix,
@@ -447,7 +447,7 @@ func (n *Node) startRPC() error {
447447
return nil
448448
}
449449

450-
initAuth := func(apis []rpc.API, port int, secret []byte) error {
450+
initAuth := func(port int, secret []byte) error {
451451
// Enable auth via HTTP
452452
server := n.httpAuth
453453
if err := server.setListenAddr(n.config.AuthAddr, port); err != nil {
@@ -459,7 +459,7 @@ func (n *Node) startRPC() error {
459459
batchResponseSizeLimit: engineAPIBatchResponseSizeLimit,
460460
httpBodyLimit: engineAPIBodyLimit,
461461
}
462-
err := server.enableRPC(apis, httpConfig{
462+
err := server.enableRPC(allAPIs, httpConfig{
463463
CorsAllowedOrigins: DefaultAuthCors,
464464
Vhosts: n.config.AuthVirtualHosts,
465465
Modules: DefaultAuthModules,
@@ -476,7 +476,7 @@ func (n *Node) startRPC() error {
476476
if err := server.setListenAddr(n.config.AuthAddr, port); err != nil {
477477
return err
478478
}
479-
if err := server.enableWS(apis, wsConfig{
479+
if err := server.enableWS(allAPIs, wsConfig{
480480
Modules: DefaultAuthModules,
481481
Origins: DefaultAuthOrigins,
482482
prefix: DefaultAuthPrefix,
@@ -490,7 +490,7 @@ func (n *Node) startRPC() error {
490490
// Set up HTTP.
491491
if n.config.HTTPHost != "" {
492492
// Configure legacy unauthenticated HTTP.
493-
if err := initHttp(n.http, open, n.config.HTTPPort); err != nil {
493+
if err := initHttp(n.http, n.config.HTTPPort); err != nil {
494494
return err
495495
}
496496
}
@@ -502,12 +502,12 @@ func (n *Node) startRPC() error {
502502
}
503503
}
504504
// Configure authenticated API
505-
if len(open) != len(all) {
505+
if len(openAPIs) != len(allAPIs) {
506506
jwtSecret, err := n.obtainJWTSecret(n.config.JWTSecret)
507507
if err != nil {
508508
return err
509509
}
510-
if err := initAuth(all, n.config.AuthPort, jwtSecret); err != nil {
510+
if err := initAuth(n.config.AuthPort, jwtSecret); err != nil {
511511
return err
512512
}
513513
}
@@ -596,9 +596,9 @@ func (n *Node) RegisterAPIs(apis []rpc.API) {
596596
n.rpcAPIs = append(n.rpcAPIs, apis...)
597597
}
598598

599-
// GetAPIs return two sets of APIs, both the ones that do not require
599+
// getAPIs return two sets of APIs, both the ones that do not require
600600
// authentication, and the complete set
601-
func (n *Node) GetAPIs() (unauthenticated, all []rpc.API) {
601+
func (n *Node) getAPIs() (unauthenticated, all []rpc.API) {
602602
for _, api := range n.rpcAPIs {
603603
if !api.Authenticated {
604604
unauthenticated = append(unauthenticated, api)

0 commit comments

Comments
 (0)