The vulnerability lies in the EthModule.java file, which is part of a demonstration application for nutzboot. The EthModule class has a method localeAccounts that returns information about local Ethereum accounts. The class is annotated with @Ok("json:{..., locked:'credentials'}"), which is a feature of the Nutz framework to control JSON serialization. The locked property is used to specify fields that should not be included in the JSON output.
The localeAccounts method returns a NutMap containing web3jCredentials, which is a map of Web3jAccount objects. The Web3jAccount class contains sensitive information, including the account's password, which is used in the sendTransaction method (account.getPassword()).
The vulnerability is caused by a typo in the @Ok annotation. The developer intended to prevent the password field from being serialized, but instead specified credentials. As a result, when the localeAccounts method is called, the web3jCredentials map is serialized to JSON, and the password for each account is included in the response, leading to an information disclosure vulnerability.