{
  "id": "GO-2022-0463",
  "published": "2022-07-01T20:06:59Z",
  "modified": "2022-08-19T22:21:47Z",
  "aliases": [
    "CVE-2022-31259",
    "GHSA-qx32-f6g6-fcfr"
  ],
  "details": "Routes in the beego HTTP router can match unintended patterns.\nThis overly-broad matching may permit an attacker to bypass access\ncontrols.\n\nFor example, the pattern \"/a/b/:name\" can match the URL \"/a.xml/b/\".\nThis may bypass access control applied to the prefix \"/a/\".\n",
  "affected": [
    {
      "package": {
        "name": "github.com/beego/beego",
        "ecosystem": "Go"
      },
      "ranges": [
        {
          "type": "SEMVER",
          "events": [
            {
              "introduced": "0"
            },
            {
              "fixed": "1.12.9"
            }
          ]
        }
      ],
      "database_specific": {
        "url": "https://pkg.go.dev/vuln/GO-2022-0463"
      },
      "ecosystem_specific": {
        "imports": [
          {
            "path": "github.com/beego/beego",
            "symbols": [
              "App.Run",
              "ControllerRegister.FindPolicy",
              "ControllerRegister.FindRouter",
              "ControllerRegister.ServeHTTP",
              "FilterRouter.ValidRouter",
              "InitBeegoBeforeTest",
              "Run",
              "RunWithMiddleWares",
              "TestBeegoInit",
              "Tree.Match",
              "Tree.match",
              "adminApp.Run"
            ]
          }
        ]
      }
    },
    {
      "package": {
        "name": "github.com/beego/beego/v2",
        "ecosystem": "Go"
      },
      "ranges": [
        {
          "type": "SEMVER",
          "events": [
            {
              "introduced": "0"
            },
            {
              "fixed": "2.0.3"
            }
          ]
        }
      ],
      "database_specific": {
        "url": "https://pkg.go.dev/vuln/GO-2022-0463"
      },
      "ecosystem_specific": {
        "imports": [
          {
            "path": "github.com/beego/beego/v2/server/web",
            "symbols": [
              "AddNamespace",
              "Any",
              "AutoPrefix",
              "AutoRouter",
              "Compare",
              "CompareNot",
              "Controller.Bind",
              "Controller.BindForm",
              "Controller.BindXML",
              "Controller.BindYAML",
              "Controller.GetSecureCookie",
              "Controller.ParseForm",
              "Controller.Render",
              "Controller.RenderBytes",
              "Controller.RenderString",
              "Controller.Resp",
              "Controller.SaveToFile",
              "Controller.ServeFormatted",
              "Controller.ServeXML",
              "Controller.ServeYAML",
              "Controller.SetSecureCookie",
              "Controller.Trace",
              "Controller.URLFor",
              "Controller.XMLResp",
              "Controller.XSRFFormHTML",
              "Controller.XSRFToken",
              "Controller.YamlResp",
              "ControllerRegister.Add",
              "ControllerRegister.AddAuto",
              "ControllerRegister.AddAutoPrefix",
              "ControllerRegister.AddMethod",
              "ControllerRegister.AddRouterMethod",
              "ControllerRegister.Any",
              "ControllerRegister.CtrlAny",
              "ControllerRegister.CtrlDelete",
              "ControllerRegister.CtrlGet",
              "ControllerRegister.CtrlHead",
              "ControllerRegister.CtrlOptions",
              "ControllerRegister.CtrlPatch",
              "ControllerRegister.CtrlPost",
              "ControllerRegister.CtrlPut",
              "ControllerRegister.Delete",
              "ControllerRegister.FindPolicy",
              "ControllerRegister.FindRouter",
              "ControllerRegister.Get",
              "ControllerRegister.Handler",
              "ControllerRegister.Head",
              "ControllerRegister.Include",
              "ControllerRegister.Init",
              "ControllerRegister.InsertFilter",
              "ControllerRegister.Options",
              "ControllerRegister.Patch",
              "ControllerRegister.Post",
              "ControllerRegister.Put",
              "ControllerRegister.ServeHTTP",
              "ControllerRegister.URLFor",
              "CtrlAny",
              "CtrlDelete",
              "CtrlGet",
              "CtrlHead",
              "CtrlOptions",
              "CtrlPatch",
              "CtrlPost",
              "CtrlPut",
              "Date",
              "DateParse",
              "Delete",
              "Exception",
              "ExecuteTemplate",
              "ExecuteViewPathTemplate",
              "FilterRouter.ValidRouter",
              "FlashData.Error",
              "FlashData.Notice",
              "FlashData.Set",
              "FlashData.Store",
              "FlashData.Success",
              "FlashData.Warning",
              "Get",
              "GetConfig",
              "HTML2str",
              "Handler",
              "Head",
              "Htmlquote",
              "Htmlunquote",
              "HttpServer.Any",
              "HttpServer.AutoPrefix",
              "HttpServer.AutoRouter",
              "HttpServer.CtrlAny",
              "HttpServer.CtrlDelete",
              "HttpServer.CtrlGet",
              "HttpServer.CtrlHead",
              "HttpServer.CtrlOptions",
              "HttpServer.CtrlPatch",
              "HttpServer.CtrlPost",
              "HttpServer.CtrlPut",
              "HttpServer.Delete",
              "HttpServer.Get",
              "HttpServer.Handler",
              "HttpServer.Head",
              "HttpServer.Include",
              "HttpServer.InsertFilter",
              "HttpServer.Options",
              "HttpServer.Patch",
              "HttpServer.Post",
              "HttpServer.PrintTree",
              "HttpServer.Put",
              "HttpServer.RESTRouter",
              "HttpServer.Router",
              "HttpServer.RouterWithOpts",
              "HttpServer.Run",
              "Include",
              "InitBeegoBeforeTest",
              "InsertFilter",
              "LoadAppConfig",
              "MapGet",
              "Namespace.Any",
              "Namespace.AutoPrefix",
              "Namespace.AutoRouter",
              "Namespace.Cond",
              "Namespace.CtrlAny",
              "Namespace.CtrlDelete",
              "Namespace.CtrlGet",
              "Namespace.CtrlHead",
              "Namespace.CtrlOptions",
              "Namespace.CtrlPatch",
              "Namespace.CtrlPost",
              "Namespace.CtrlPut",
              "Namespace.Delete",
              "Namespace.Filter",
              "Namespace.Get",
              "Namespace.Handler",
              "Namespace.Head",
              "Namespace.Include",
              "Namespace.Namespace",
              "Namespace.Options",
              "Namespace.Patch",
              "Namespace.Post",
              "Namespace.Put",
              "Namespace.Router",
              "NewControllerRegister",
              "NewControllerRegisterWithCfg",
              "NewHttpServerWithCfg",
              "NewHttpSever",
              "NewNamespace",
              "NotNil",
              "Options",
              "ParseForm",
              "Patch",
              "Policy",
              "Post",
              "PrintTree",
              "Put",
              "RESTRouter",
              "ReadFromRequest",
              "RenderForm",
              "Router",
              "RouterWithOpts",
              "Run",
              "RunWithMiddleWares",
              "TestBeegoInit",
              "Tree.AddRouter",
              "Tree.AddTree",
              "Tree.Match",
              "Tree.match",
              "URLFor",
              "URLMap.GetMap",
              "URLMap.GetMapData",
              "adminApp.Run",
              "adminController.AdminIndex",
              "adminController.Healthcheck",
              "adminController.ListConf",
              "adminController.ProfIndex",
              "adminController.PrometheusMetrics",
              "adminController.QpsIndex",
              "adminController.TaskStatus",
              "beegoAppConfig.Bool",
              "beegoAppConfig.DefaultBool"
            ]
          }
        ]
      }
    }
  ],
  "references": [
    {
      "type": "FIX",
      "url": "https://github.com/beego/beego/pull/4958"
    },
    {
      "type": "FIX",
      "url": "https://github.com/beego/beego/commit/64cf44d725c8cc35d782327d333df9cbeb1bf2dd"
    },
    {
      "type": "WEB",
      "url": "https://beego.vip"
    },
    {
      "type": "WEB",
      "url": "https://github.com/beego/beego/issues/4946"
    },
    {
      "type": "WEB",
      "url": "https://github.com/beego/beego/pull/4954"
    },
    {
      "type": "WEB",
      "url": "https://nvd.nist.gov/vuln/detail/CVE-2022-31259"
    },
    {
      "type": "WEB",
      "url": "https://github.com/advisories/GHSA-qx32-f6g6-fcfr"
    }
  ]
}