提出 #954699: Beijing Bairong Qianyu Software Technology Development Co., Ltd. SiteServer CMS 7.2.1 CWE-89情報

タイトルBeijing Bairong Qianyu Software Technology Development Co., Ltd. SiteServer CMS 7.2.1 CWE-89
説明The STL search endpoint does not require an authenticated administrator session. The endpoint decrypts and parses the supplied template. If the template contains an stl:sqlContents element, its query content is passed to the database layer and executed as a raw SQL statement without parameterization, filtering, or statement-type restrictions. The default database connection is the main SSCMS database connection. This allows an attacker who can obtain or replay a valid encrypted template containing stl:sqlContents to read arbitrary database data, including administrator credentials and application configuration. Technical Details The vulnerable flow is: POST /api/stl/actions/search → request.Template is decrypted → STL template parser processes stl:sqlContents → StlSqlContents.ParseAsync → ParserGetSqlDataSourceAsync → connection.ExecuteReaderAsync(queryString) The relevant sink is: SSCMS.Core/Services/DatabaseManager.Parser.cs:13-31 The query string is executed directly using ExecuteReaderAsync without parameter binding. The default connection string is initialized from: SSCMS.Core/StlParser/Models/ListInfo.cs:41 The search endpoint is: SSCMS.Web/Controllers/Stl/ActionsSearchController.Submit.cs Proof of Concept Send a request to: POST /api/stl/actions/search with a valid encrypted template whose decrypted content contains: <stl:sqlContents><stl:queryString>SELECT * FROM siteserver_Administrator</stl:queryString><stl:sqlContent type="userName"></stl:sqlContent></stl:sqlContents> The request body can use the following structure: {"isAllSites":false,"siteId":1,"type":"Title","word":"123","isDefaultDisplay":false,"template":"<valid encrypted template>","page":1} In the tested deployment, the response returned administrator table data. A second injection path exists when the decrypted template contains request entities such as {Request.x} inside the SQL query. The search request value is substituted into the query before execution. Impact An unauthenticated attacker may: Read arbitrary database tables Extract administrator accounts and password hashes Extract database connection strings and application secrets Modify data if the underlying database driver permits multi-statement execution Potentially achieve further compromise through exposed credentials or configuration Remediation Do not allow anonymous requests to execute stl:sqlContents Remove raw SQL execution from externally reachable template paths Restrict SQL templates to trusted administrators and server-side stored template IDs Use an allowlist of permitted queries and database connections Never execute user-controlled query text through ExecuteReaderAsync Disclosure Status Unpatched / fixed version unknown.
ユーザー
 BlackSpdier (UID 89912)
送信2026年09月01日 03:41 (1 月 ago)
モデレーション2026年10月10日 17:08 (1 month later)
ステータス重複
VulDBエントリ360387 [Siteserver SSCMS 7.4.0 /api/stl/actions/dynamic SQLインジェクション]
ポイント0

Do you want to use VulDB in your project?

Use the official API to access entries easily!