{"id":"CVE-2026-111647","kind":"vulnerability","aliases":["CVE-2026-111647"],"related":[],"title":"PickMall lilishop: buyers can read other buyers' invoice records","description":"PickMall lilishop through 5.0.0 contains an insecure direct object reference vulnerability that allows authenticated buyers to read other buyers' invoice records because ReceiptServiceImpl.getDetail performs no ownership check. Attackers can supply another buyer's receipt id to GET /buyer/trade/receipt/{id} to obtain invoice titles, taxpayer identification numbers, order numbers, member ids and member names.","summary":"PickMall lilishop through 5.0.0 does not check ownership when returning a receipt, so any logged-in buyer can request another buyer's invoice by id. The exposed data includes invoice titles, taxpayer identification numbers, order numbers, and member names and ids.","severity":"medium","cvss":5.3,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["e-commerce","lilishop","other","pickmall","self-hosted"],"not_affected_if":["patched-version","receipt-endpoint-blocked"],"how_to_check":"- Look at `ReceiptServiceImpl.getDetail` for an ownership check against the current member before returning the receipt.\n- Test with two buyer accounts: request `GET /buyer/trade/receipt/{id}` for a receipt owned by the other account and see if it returns.\n- Confirm the installed version against `5.0.0`.","fix":null,"status":"open","published_at":"2026-10-16T18:17:45+00:00","first_seen_at":"2026-10-23T21:57:13+00:00","triaged_at":"2026-10-25T04:27:11+00:00","updated_at":"2026-10-25T04:27:11+00:00","category":"other","confidence":0.6,"triage":{"at":"2026-10-25T04:27:11Z","model":"claude-haiku-5-5","output":{"fix":"unknown","reach":"internet","title":"PickMall lilishop: buyers can read other buyers' invoice records","impact":"medium","summary":"PickMall lilishop through 5.0.0 does not check ownership when returning a receipt, so any logged-in buyer can request another buyer's invoice by id. The exposed data includes invoice titles, taxpayer identification numbers, order numbers, and member names and ids.","category":"other","nicknames":[],"who_cares":["lilishop","pickmall","self-hosted","e-commerce"],"confidence":0.6,"needs_auth":"yes","worst_case":"Other buyers' invoice titles, taxpayer numbers and names are readable","analyst_note":"Find the fixed version and a vendor advisory or commit that adds the ownership check to ReceiptServiceImpl.getDetail, then fill in the fix field.","how_to_check":"- Look at `ReceiptServiceImpl.getDetail` for an ownership check against the current member before returning the receipt.\n- Test with two buyer accounts: request `GET /buyer/trade/receipt/{id}` for a receipt owned by the other account and see if it returns.\n- Confirm the installed version against `5.0.0`.","needs_analyst":true,"not_affected_if":["patched-version","receipt-endpoint-blocked"],"who_is_affected":"Teams running PickMall lilishop through 5.0.0 with buyer accounts that can reach the receipt endpoint. Installs where the receipt endpoint is not exposed, or that run a later version with the ownership check, are not affected.","user_interaction":"no","needs_special_setup":"unknown","severity_if_unknown":"medium"},"cost_usd":0.000626,"input_tokens":3365,"output_tokens":579,"severity_before":"medium"},"analyst_status":null,"analyst_note":null,"search":"'-111647':12A,15A '-2026':11A,14A '/buyer/trade/receipt':104C '5.0.0':28B,70C 'allow':79C 'anoth':45B,97C 'attack':94C 'authent':80C 'buyer':3A,7A,42B,46B,81C,85C,98C 'check':31B,93C 'commerc':18B 'contain':71C 'cve':10A,13A 'data':53B 'direct':74C 'e':17B 'e-commerc':16B 'expos':52B 'get':103C 'host':24B 'id':50B,66B,101C,105C,116C 'identif':58B,111C 'includ':54B 'insecur':73C 'invoic':8A,48B,55B,86C,108C 'lilishop':2A,19B,26B,68C 'log':40B 'logged-in':39B 'member':63B,115C,118C 'name':64B,119C 'number':59B,61B,112C,114C 'object':75C 'obtain':107C 'order':60B,113C 'ownership':32B,92C 'perform':90C 'pickmal':1A,21B,25B,67C 'read':5A,83C 'receipt':36B,100C 'receiptserviceimpl.getdetail':89C 'record':9A,87C 'refer':76C 'request':44B 'return':34B 'self':23B 'self-host':22B 'suppli':96C 'taxpay':57B,110C 'titl':56B,109C 'vulner':77C","nicknames":[],"mitigations":[],"who_affected":"Teams running PickMall lilishop through 5.0.0 with buyer accounts that can reach the receipt endpoint. Installs where the receipt endpoint is not exposed, or that run a later version with the ownership check, are not affected.","tier":"C","verified":{},"analyst_revisit_at":null,"first_public_at":"2026-10-16T18:17:45+00:00","kev":null,"cvss_vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:N/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","cvss_by":"disclosure@vulncheck.com","poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-111647","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-111647","severity":null,"published_at":"2026-10-16T18:17:45+00:00","modified_at":"2026-10-16T20:17:21+00:00","first_seen_at":"2026-10-23T21:57:13+00:00","fetched_at":"2026-10-23T22:28:55+00:00","note":null}],"documents":[],"notice":"Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai"}