<?xml version="1.0" encoding="UTF-8"?> 
<?xml-stylesheet href="https://dev.horde.org/themes/horde//default/feed-rss.xsl" type="text/xsl"?> 
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"> 
 <channel> 
  <title>Horde allows unauthenticated usere</title> 
  <pubDate>Sat, 04 Apr 2026 06:37:20 +0000</pubDate> 
  <link>https://bugs.horde.org/ticket/15095</link> 
  <atom:link rel="self" type="application/rss+xml" title="Horde allows unauthenticated usere" href="https://bugs.horde.org/ticket/15095/rss" /> 
  <description>Horde allows unauthenticated usere</description> 
 
   
   
  <item> 
   <title>I have a Horde install that on FreeBSD/Dovecot/postfix, it i</title> 
   <description>I have a Horde install that on FreeBSD/Dovecot/postfix, it is supposed to authenticate users in a MySQL database. The users are added into the database with postfixadmin.
if a User was to log into Horde with a legitimate UserName and an incorrect password, Horde would let them through, allowing access to the Contact, Calendar etc but not mail. however, imp throws the error: User is not authorized for Mail (Host: ***.***.***.****). Also, if the legitimate username and wrong password is an admin, horde allows access to the Administration Configuration.

if the user enters the proper password, everything is fine and no errors.

Is this a bug or a misconfiguration? How do I resolve this?




&lt;?php
/* CONFIG START. DO NOT CHANGE ANYTHING IN OR AFTER THIS LINE. */
$conf[&#039;vhosts&#039;] = false;
$conf[&#039;debug_level&#039;] = E_ALL &amp; ~E_NOTICE;
$conf[&#039;max_exec_time&#039;] = 0;
$conf[&#039;compress_pages&#039;] = true;
$conf[&#039;secret_key&#039;] = &#039;**&#039;;
$conf[&#039;umask&#039;] = 077;
$conf[&#039;testdisable&#039;] = true;
$conf[&#039;use_ssl&#039;] = 2;
$conf[&#039;server&#039;][&#039;name&#039;] = $_SERVER[&#039;SERVER_NAME&#039;];
$conf[&#039;urls&#039;][&#039;token_lifetime&#039;] = 30;
$conf[&#039;urls&#039;][&#039;hmac_lifetime&#039;] = 30;
$conf[&#039;urls&#039;][&#039;pretty&#039;] = false;
$conf[&#039;safe_ips&#039;] = array();
$conf[&#039;session&#039;][&#039;name&#039;] = &#039;Horde&#039;;
$conf[&#039;session&#039;][&#039;use_only_cookies&#039;] = true;
$conf[&#039;session&#039;][&#039;timeout&#039;] = 0;
$conf[&#039;session&#039;][&#039;cache_limiter&#039;] = &#039;nocache&#039;;
$conf[&#039;session&#039;][&#039;max_time&#039;] = 72000;
$conf[&#039;cookie&#039;][&#039;domain&#039;] = $_SERVER[&#039;SERVER_NAME&#039;];
$conf[&#039;cookie&#039;][&#039;path&#039;] = &#039;/&#039;;
$conf[&#039;sql&#039;][&#039;username&#039;] = &#039;**&#039;;
$conf[&#039;sql&#039;][&#039;password&#039;] = &#039;**&#039;;
$conf[&#039;sql&#039;][&#039;hostspec&#039;] = &#039;localhost&#039;;
$conf[&#039;sql&#039;][&#039;port&#039;] = 3306;
$conf[&#039;sql&#039;][&#039;protocol&#039;] = &#039;tcp&#039;;
$conf[&#039;sql&#039;][&#039;database&#039;] = &#039;horde&#039;;
$conf[&#039;sql&#039;][&#039;charset&#039;] = &#039;utf-8&#039;;
$conf[&#039;sql&#039;][&#039;ssl&#039;] = false;
$conf[&#039;sql&#039;][&#039;splitread&#039;] = false;
$conf[&#039;sql&#039;][&#039;logqueries&#039;] = false;
$conf[&#039;sql&#039;][&#039;phptype&#039;] = &#039;mysql&#039;;
$conf[&#039;nosql&#039;][&#039;phptype&#039;] = false;
$conf[&#039;ldap&#039;][&#039;useldap&#039;] = false;
$conf[&#039;auth&#039;][&#039;admins&#039;] = array(&#039;**&#039;);
$conf[&#039;auth&#039;][&#039;checkip&#039;] = true;
$conf[&#039;auth&#039;][&#039;checkbrowser&#039;] = true;
$conf[&#039;auth&#039;][&#039;resetpassword&#039;] = true;
$conf[&#039;auth&#039;][&#039;alternate_login&#039;] = false;
$conf[&#039;auth&#039;][&#039;redirect_on_logout&#039;] = false;
$conf[&#039;auth&#039;][&#039;list_users&#039;] = &#039;list&#039;;
$conf[&#039;auth&#039;][&#039;params&#039;][&#039;phptype&#039;] = &#039;mysql&#039;;
$conf[&#039;auth&#039;][&#039;params&#039;][&#039;hostspec&#039;] = &#039;localhost&#039;;
$conf[&#039;auth&#039;][&#039;params&#039;][&#039;protocol&#039;] = &#039;tcp&#039;;
$conf[&#039;auth&#039;][&#039;params&#039;][&#039;username&#039;] = &#039;postfix&#039;;
$conf[&#039;auth&#039;][&#039;params&#039;][&#039;password&#039;] = &#039;**&#039;;
$conf[&#039;auth&#039;][&#039;params&#039;][&#039;database&#039;] = &#039;postfix&#039;;
$conf[&#039;auth&#039;][&#039;params&#039;][&#039;query_auth&#039;] = &#039;SELECT password FROM mailbox WHERE username = \L&#039;;
$conf[&#039;auth&#039;][&#039;params&#039;][&#039;query_add&#039;] = &#039;INSERT INTO mailbox (domain, username , password, home) VALUES ( SUBSTRING_INDEX(\L, \&#039;@\&#039;, -1), \L, \P, \&#039;/usr/local/virtual/SUBSTRING_INDEX(\L, \&#039;@\&#039;, -1)/\L\&#039;)&#039;;
$conf[&#039;auth&#039;][&#039;params&#039;][&#039;query_getpw&#039;] = &#039;SELECT password FROM mailbox WHERE username = \L&#039;;
$conf[&#039;auth&#039;][&#039;params&#039;][&#039;query_update&#039;] = &#039;&#039;;
$conf[&#039;auth&#039;][&#039;params&#039;][&#039;query_resetpassword&#039;] = &#039;UPDATE mailbox SET password = \P WHERE username = \L AND password = \P&#039;;
$conf[&#039;auth&#039;][&#039;params&#039;][&#039;query_remove&#039;] = &#039;DELETE FROM mailbox WHERE username = \L AND domain = SUBSTRING_INDEX(\L, \&#039;@\&#039;, -1)&#039;;
$conf[&#039;auth&#039;][&#039;params&#039;][&#039;query_list&#039;] = &#039;SELECT * FROM mailbox&#039;;
$conf[&#039;auth&#039;][&#039;params&#039;][&#039;query_exists&#039;] = &#039;SELECT 1 FROM mailbox WHERE SUBSTRING_INDEX(\L, \&#039;@\&#039;, 1) AND domain = SUBSTRING_INDEX(\L, \&#039;@\&#039;, -1)&#039;;
$conf[&#039;auth&#039;][&#039;params&#039;][&#039;encryption&#039;] = &#039;crypt-md5&#039;;
$conf[&#039;auth&#039;][&#039;params&#039;][&#039;show_encryption&#039;] = true;
$conf[&#039;auth&#039;][&#039;driver&#039;] = &#039;customsql&#039;;
$conf[&#039;auth&#039;][&#039;params&#039;][&#039;count_bad_logins&#039;] = true;
$conf[&#039;auth&#039;][&#039;params&#039;][&#039;login_block&#039;] = true;
$conf[&#039;auth&#039;][&#039;params&#039;][&#039;login_block_count&#039;] = 3;
$conf[&#039;auth&#039;][&#039;params&#039;][&#039;login_block_time&#039;] = 15;
$conf[&#039;signup&#039;][&#039;params&#039;][&#039;driverconfig&#039;] = &#039;horde&#039;;
$conf[&#039;signup&#039;][&#039;driver&#039;] = &#039;Sql&#039;;
$conf[&#039;signup&#039;][&#039;email&#039;] = &#039;**&#039;;
$conf[&#039;signup&#039;][&#039;approve&#039;] = true;
$conf[&#039;signup&#039;][&#039;allow&#039;] = true;
$conf[&#039;log&#039;][&#039;priority&#039;] = &#039;INFO&#039;;
$conf[&#039;log&#039;][&#039;ident&#039;] = &#039;HORDE&#039;;
$conf[&#039;log&#039;][&#039;name&#039;] = LOG_USER;
$conf[&#039;log&#039;][&#039;type&#039;] = &#039;syslog&#039;;
$conf[&#039;log&#039;][&#039;enabled&#039;] = true;
$conf[&#039;log_accesskeys&#039;] = false;
$conf[&#039;prefs&#039;][&#039;maxsize&#039;] = 65535;
$conf[&#039;prefs&#039;][&#039;params&#039;][&#039;driverconfig&#039;] = &#039;horde&#039;;
$conf[&#039;prefs&#039;][&#039;driver&#039;] = &#039;Sql&#039;;
$conf[&#039;alarms&#039;][&#039;params&#039;][&#039;driverconfig&#039;] = &#039;horde&#039;;
$conf[&#039;alarms&#039;][&#039;params&#039;][&#039;ttl&#039;] = 300;
$conf[&#039;alarms&#039;][&#039;driver&#039;] = &#039;Sql&#039;;
$conf[&#039;group&#039;][&#039;params&#039;][&#039;driverconfig&#039;] = &#039;horde&#039;;
$conf[&#039;group&#039;][&#039;driver&#039;] = &#039;Sql&#039;;
$conf[&#039;perms&#039;][&#039;driverconfig&#039;] = &#039;horde&#039;;
$conf[&#039;perms&#039;][&#039;driver&#039;] = &#039;Sql&#039;;
$conf[&#039;share&#039;][&#039;no_sharing&#039;] = false;
$conf[&#039;share&#039;][&#039;auto_create&#039;] = true;
$conf[&#039;share&#039;][&#039;world&#039;] = true;
$conf[&#039;share&#039;][&#039;any_group&#039;] = false;
$conf[&#039;share&#039;][&#039;hidden&#039;] = false;
$conf[&#039;share&#039;][&#039;cache&#039;] = false;
$conf[&#039;share&#039;][&#039;driver&#039;] = &#039;Sqlng&#039;;
$conf[&#039;cache&#039;][&#039;default_lifetime&#039;] = 86400;
$conf[&#039;cache&#039;][&#039;params&#039;][&#039;sub&#039;] = 0;
$conf[&#039;cache&#039;][&#039;driver&#039;] = &#039;File&#039;;
$conf[&#039;cache&#039;][&#039;use_memorycache&#039;] = &#039;&#039;;
$conf[&#039;cachecssparams&#039;][&#039;url_version_param&#039;] = true;
$conf[&#039;cachecss&#039;] = false;
$conf[&#039;cachejsparams&#039;][&#039;url_version_param&#039;] = true;
$conf[&#039;cachejs&#039;] = false;
$conf[&#039;cachethemes&#039;] = false;
$conf[&#039;lock&#039;][&#039;params&#039;][&#039;driverconfig&#039;] = &#039;horde&#039;;
$conf[&#039;lock&#039;][&#039;driver&#039;] = &#039;Sql&#039;;
$conf[&#039;token&#039;][&#039;params&#039;][&#039;driverconfig&#039;] = &#039;horde&#039;;
$conf[&#039;token&#039;][&#039;driver&#039;] = &#039;Sql&#039;;
$conf[&#039;history&#039;][&#039;params&#039;][&#039;driverconfig&#039;] = &#039;horde&#039;;
$conf[&#039;history&#039;][&#039;driver&#039;] = &#039;Sql&#039;;
$conf[&#039;davstorage&#039;][&#039;params&#039;][&#039;driverconfig&#039;] = &#039;horde&#039;;
$conf[&#039;davstorage&#039;][&#039;driver&#039;] = &#039;Sql&#039;;
$conf[&#039;mailer&#039;][&#039;params&#039;][&#039;host&#039;] = &#039;**&#039;;
$conf[&#039;mailer&#039;][&#039;params&#039;][&#039;port&#039;] = 25;
$conf[&#039;mailer&#039;][&#039;params&#039;][&#039;secure&#039;] = &#039;tls&#039;;
$conf[&#039;mailer&#039;][&#039;params&#039;][&#039;localhost&#039;] = &#039;**&#039;;
$conf[&#039;mailer&#039;][&#039;params&#039;][&#039;auth&#039;] = false;
$conf[&#039;mailer&#039;][&#039;params&#039;][&#039;lmtp&#039;] = false;
$conf[&#039;mailer&#039;][&#039;type&#039;] = &#039;smtp&#039;;
$conf[&#039;vfs&#039;][&#039;params&#039;][&#039;driverconfig&#039;] = &#039;horde&#039;;
$conf[&#039;vfs&#039;][&#039;type&#039;] = &#039;Sql&#039;;
$conf[&#039;sessionhandler&#039;][&#039;type&#039;] = &#039;Builtin&#039;;
$conf[&#039;sessionhandler&#039;][&#039;hashtable&#039;] = false;
$conf[&#039;spell&#039;][&#039;params&#039;][&#039;path&#039;] = &#039;/usr/local/bin/aspell&#039;;
$conf[&#039;spell&#039;][&#039;driver&#039;] = &#039;aspell&#039;;
$conf[&#039;gnupg&#039;][&#039;path&#039;] = &#039;/usr/local/bin/gpg&#039;;
$conf[&#039;gnupg&#039;][&#039;keyserver&#039;] = array(&#039;pool.sks-keyservers.net&#039;, &#039;subkeys.pgp.net&#039;, &#039;pgp.mit.edu&#039;);
$conf[&#039;gnupg&#039;][&#039;timeout&#039;] = 10;
$conf[&#039;nobase64_img&#039;] = false;
$conf[&#039;image&#039;][&#039;convert&#039;] = &#039;/usr/local/bin/convert&#039;;
$conf[&#039;image&#039;][&#039;identify&#039;] = &#039;/usr/local/bin/identify&#039;;
$conf[&#039;image&#039;][&#039;driver&#039;] = &#039;Im&#039;;
$conf[&#039;exif&#039;][&#039;driver&#039;] = &#039;Bundled&#039;;
$conf[&#039;timezone&#039;][&#039;location&#039;] = &#039;ftp://ftp.iana.org/tz/tzdata-latest.tar.gz&#039;;
$conf[&#039;problems&#039;][&#039;email&#039;] = &#039;**&#039;;
$conf[&#039;problems&#039;][&#039;maildomain&#039;] = &#039;**&#039;;
$conf[&#039;problems&#039;][&#039;tickets&#039;] = false;
$conf[&#039;problems&#039;][&#039;attachments&#039;] = true;
$conf[&#039;menu&#039;][&#039;links&#039;][&#039;help&#039;] = &#039;all&#039;;
$conf[&#039;menu&#039;][&#039;links&#039;][&#039;prefs&#039;] = &#039;authenticated&#039;;
$conf[&#039;menu&#039;][&#039;links&#039;][&#039;problem&#039;] = &#039;never&#039;;
$conf[&#039;menu&#039;][&#039;links&#039;][&#039;login&#039;] = &#039;all&#039;;
$conf[&#039;menu&#039;][&#039;links&#039;][&#039;logout&#039;] = &#039;authenticated&#039;;
$conf[&#039;portal&#039;][&#039;fixed_blocks&#039;] = array(&#039;horde:horde_Block_Cloud&#039;, &#039;horde:horde_Block_Feed&#039;, &#039;horde:horde_Block_Iframe&#039;, &#039;horde:horde_Block_Moon&#039;, &#039;horde:horde_Block_Sunrise&#039;, &#039;horde:horde_Block_Time&#039;, &#039;horde:horde_Block_Vatid&#039;, &#039;horde:horde_Block_Account&#039;, &#039;ingo:ingo_Block_Overview&#039;, &#039;kronolith:kronolith_Block_Monthlist&#039;, &#039;kronolith:kronolith_Block_Prevmonthlist&#039;, &#039;kronolith:kronolith_Block_Summary&#039;, &#039;kronolith:kronolith_Block_Month&#039;, &#039;mnemo:mnemo_Block_Summary&#039;, &#039;mnemo:mnemo_Block_Note&#039;, &#039;nag:nag_Block_Summary&#039;, &#039;trean:trean_Block_Mostclicked&#039;, &#039;trean:trean_Block_Bookmarks&#039;, &#039;turba:turba_Block_Minisearch&#039;);
$conf[&#039;accounts&#039;][&#039;driver&#039;] = &#039;null&#039;;
$conf[&#039;user&#039;][&#039;verify_from_addr&#039;] = true;
$conf[&#039;user&#039;][&#039;select_view&#039;] = true;
$conf[&#039;facebook&#039;][&#039;enabled&#039;] = false;
$conf[&#039;twitter&#039;][&#039;enabled&#039;] = false;
$conf[&#039;urlshortener&#039;] = false;
$conf[&#039;weather&#039;][&#039;provider&#039;] = false;
$conf[&#039;imap&#039;][&#039;enabled&#039;] = false;
$conf[&#039;imsp&#039;][&#039;enabled&#039;] = false;
$conf[&#039;kolab&#039;][&#039;enabled&#039;] = false;
$conf[&#039;hashtable&#039;][&#039;driver&#039;] = &#039;none&#039;;
$conf[&#039;activesync&#039;][&#039;enabled&#039;] = false;
/* CONFIG END. DO NOT CHANGE ANYTHING IN OR BEFORE THIS LINE. */

database tables:

+-----------------------+
| Tables_in_postfix     |
+-----------------------+
| admin                 |
| alias                 |
| alias_domain          |
| config                |
| domain                |
| domain_admins         |
| fetchmail             |
| log                   |
| mailbox               |
| quota                 |
| quota2                |
| vacation              |
| vacation_notification |
+-----------------------+
13 rows in set (0.00 sec)


+-----------------+--------------+------+-----+---------------------+-------+
| Field           | Type         | Null | Key | Default             | Extra |
+-----------------+--------------+------+-----+---------------------+-------+
| username        | varchar(255) | NO   | PRI | NULL                |       |
| password        | varchar(255) | NO   |     | NULL                |       |
| name            | varchar(255) | NO   |     | NULL                |       |
| maildir         | varchar(255) | NO   |     | NULL                |       |
| quota           | bigint(20)   | NO   |     | 0                   |       |
| local_part      | varchar(255) | NO   |     | NULL                |       |
| domain          | varchar(255) | NO   | MUL | NULL                |       |
| created         | datetime     | NO   |     | 2000-01-01 00:00:00 |       |
| modified        | datetime     | NO   |     | 2000-01-01 00:00:00 |       |
| active          | tinyint(1)   | NO   |     | 1                   |       |
| phone           | varchar(30)  | NO   |     |                     |       |
| email_other     | varchar(255) | NO   |     |                     |       |
| token           | varchar(255) | NO   |     |                     |       |
| token_validity  | datetime     | NO   |     | 2000-01-01 00:00:00 |       |
| password_expiry | datetime     | NO   |     | 2000-01-01 00:00:00 |       |
+-----------------+--------------+------+-----+---------------------+-------+
15 rows in set (0.00 sec)</description> 
   <pubDate>Mon, 14 Feb 2022 07:33:19 +0000</pubDate> 
   <link>https://bugs.horde.org/ticket/15095#t93988</link> 
  </item> 
   
  <item> 
   <title>This is a support question, not a bug report.

Please use </title> 
   <description>This is a support question, not a bug report.

Please use the mailing lists to ask for support.

http://www.horde.org/mail/ contains a list of all available mailing lists.</description> 
   <pubDate>Thu, 17 Feb 2022 09:49:42 +0000</pubDate> 
   <link>https://bugs.horde.org/ticket/15095#t93991</link> 
  </item> 
   
   
 
 </channel> 
</rss> 
